現在、私はこのコードを持っています:
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();
}
今問題は、このエラーが発生していることです:
タイプ 'System.InvalidOperationException' の初回例外が mscorlib.dll で発生しました タイプ 'System.InvalidOperationException' の未処理の例外が mscorlib.dll で発生しました
追加情報: タスクが既に完了しているときに、タスクを最終状態に移行しようとしました
を使用すると、この問題がスローされますtcs.SetResult()
。