目前我有这个代码:
TaskCompletionSource<String> tcs = new TaskCompletionSource<String>();
// ...
process.OutputDataReceived += (sender, e) =>
{
if (e.Data == null)
{
outputWaitHandle.Set();
}
else
{
tcs.SetResult(e.Data.ToString());
}
};
// ...
return tcs.Task;
然后这个函数的用户像这样工作:
private async void Foo_Click(object sender, RoutedEventArgs e)
{
String output = await ExecuteCommand();
}
现在的问题是我收到了这个错误:
mscorlib.dll 中出现“System.InvalidOperationException”类型的第一次机会异常 mscorlib.dll 中出现“System.InvalidOperationException”类型的未处理异常
附加信息:尝试将已完成的任务转换为最终状态
当我使用tcs.SetResult()
.