private Task <bool> AwaitForAnswer() { TaskCompletionSource <bool> awaitableResult = new TaskCompletionSource <bool>(true); Task.Factory.StartNew(() => { while (true) { Thread.Sleep(2000); var answare = CurrentProcess.GetAnswer(this.Id); if (!answare.HasAnswered) { continue; } awaitableResult.SetResult(answare.Value); break; } }); return(awaitableResult.Task); }