이 두 함수는 작동하지만 내 문제는 익명 함수 (인수로 ServiceCheck
을받는 함수)가 호출되지 않는다는 것입니다.
CheckServiceConnection
함수가 익명 함수가 실행되도록 문자열을 반환하도록하려면 어떻게해야합니까?익명 함수를 실행하는 방법
internal async void CheckServiceConnection()
{
await _da.CheckServiceConnection((ServiceCheck) =>
{
GeneralEventArgs args = new GeneralEventArgs();
args.GeneralObject = (object)ServiceCheck;
ServiceConnection(this, args);
});
}
public Task<string> CheckServiceConnection(Action<string> OnComplited)
{
var tcs = new TaskCompletionSource<string>();
ws.CheckServiceCompleted += (s, e) =>
{
if (e.Error != null)
tcs.TrySetException(e.Error);
else if (e.Cancelled)
tcs.TrySetCanceled();
else if (e.Result != null)
tcs.TrySetResult(e.Result);
};
try
{
ws.CheckServiceAsync();
}
catch (Exception ex)
{
ws.LogAsync(ex.Message, "DataManager.CheckServiceConnection()");
}
return tcs.Task;
}
그 같은 CheckServiceConnection
기능을 쓸 때 - 그것은 을 노력을 (그리고 CheckServiceConnection
가 인수받지 물론) :
internal async void CheckServiceConnection()
{
var ServiceCheck = await _da.CheckServiceConnection();
GeneralEventArgs args = new GeneralEventArgs();
args.GeneralObject = (object)ServiceCheck;
ServiceConnection(this, args);
}
'await _da.CheckServiceConnection ((ServiceCheck)'라고 쓰여있는 첫 번째 괄호가 올바른지 확인하십시오. – Slime
예, ServiceCheck는 CheckServiceConnection이 완료되면 익명 함수로 돌아 오는 문자열입니다 – user1731254