本文整理汇总了C#中TaskCompletionSource.?.SetResult方法的典型用法代码示例。如果您正苦于以下问题:C# TaskCompletionSource.?.SetResult方法的具体用法?C# TaskCompletionSource.?.SetResult怎么用?C# TaskCompletionSource.?.SetResult使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaskCompletionSource
的用法示例。
在下文中一共展示了TaskCompletionSource.?.SetResult方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: NextMessageBoxOpened
public static Task NextMessageBoxOpened()
{
var tcs = new TaskCompletionSource<int>();
WindowManager.ModalWindowOpened += (s, e) =>
{
if (tcs == null)
return;
try
{
Assert.IsNotNull(e.Window);
Assert.IsNull(e.Window.Window);
tcs?.SetResult(0);
}
catch (AssertionException ex)
{
tcs.SetException(ex);
}
finally
{
tcs = null;
}
};
return tcs.Task;
}
示例2: Connect
public async Task Connect()
{
var taskSource = new TaskCompletionSource<bool>();
_webSocket.OnOpen += (sender, args) => { taskSource?.SetResult(true); };
_webSocket.OnError += (sender, args) => { taskSource?.SetException(args.Exception); };
_webSocket.Connect();
await taskSource.Task;
}
示例3: NextMainWindowChanged
public static Task NextMainWindowChanged(Window newMainWindow)
{
var tcs = new TaskCompletionSource<int>();
WindowManager.MainWindowChanged += (s, e) =>
{
if (tcs == null)
return;
try
{
Assert.AreEqual(newMainWindow, e.Window?.Window);
tcs?.SetResult(0);
}
catch (AssertionException ex)
{
tcs.SetException(ex);
}
finally
{
tcs = null;
}
};
return tcs.Task;
}
示例4: Switch
private void Switch(Task<IHTMLBinding> iBinding, HTMLLogicWindow iwindow, TaskCompletionSource<IHTMLBinding> tcs)
{
var oldvm = Binding?.Root;
var fireFirstLoad = false;
Binding = iBinding.Result;
if (_CurrentWebControl!=null)
{
_CurrentWebControl.HTMLWindow.ConsoleMessage -= ConsoleMessage;
_CurrentWebControl.Dispose();
}
else
{
fireFirstLoad = true;
}
_CurrentWebControl = _NextWebControl;
_NextWebControl = null;
_CurrentWebControl.HTMLWindow.Crashed += Crashed;
_CurrentWebControl.Show();
_Window = iwindow;
var inav = _UseINavigable ? Binding.Root as INavigable : null;
if (inav != null)
inav.Navigation = this;
_Window.State = WindowLogicalState.Opened;
_Window.OpenAsync().ContinueWith(t => EndAnimation(Binding.Root));
_Navigating = false;
if (fireFirstLoad)
OnFirstLoad?.Invoke(this, EventArgs.Empty);
FireNavigate(Binding.Root, oldvm);
tcs?.SetResult(Binding);
}