はので、私はいくつかのコードユニットテストコード。ContinueWith()
Task.Factory.StartNew(() => this.listener.Start()).ContinueWith(
(task) =>
{
if (task.IsCompleted)
{
this.status = WorkerStatus.Started;
this.RaiseStatusChanged();
this.LogInformationMessage("Worker Started.");
}
});
を持っている(namley this.listener.Start( ))。問題は、ContinueWithを呼び出す前にテストが実行を終了することです。私がコードをステップ実行する余分な遅延のため、私はそれをうまく呼び出すデバッグするとき。
別のアセンブリのテストコードから、私のテストがアサートする前にコードが実行されていることを確認するにはどうしたらいいですか?
私はちょうどThread.Sleepを使うことができました...しかし、これは本当にハックのようなものです。
私はThread.Joinのタスクバージョンを探していますね。
はどのようにそれが終了しない
、何らかのエラーがありますか? – maximpaエラーはありません... listener.startは嘲笑され、終了します。私はそれをデバッグモードで確認できます。それはタイミングの問題です –
私はそれがむしろ同期の問題であると言うでしょう、あなたはあなたが呼び出す非同期メソッドからいくつかのフィードバックを得る必要があります – maximpa