本文整理汇总了C#中TaskCompletionSource.RunSynchronously方法的典型用法代码示例。如果您正苦于以下问题:C# TaskCompletionSource.RunSynchronously方法的具体用法?C# TaskCompletionSource.RunSynchronously怎么用?C# TaskCompletionSource.RunSynchronously使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaskCompletionSource
的用法示例。
在下文中一共展示了TaskCompletionSource.RunSynchronously方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunSynchronouslyTest
public static void RunSynchronouslyTest()
{
Task.Factory.StartNew(delegate { CoreRunSynchronouslyTest(); }).Wait();
// Executing RunSynchronously() on a task whose cancellationToken was previously signaled
CancellationTokenSource cts = new CancellationTokenSource();
CancellationToken ct = cts.Token;
Task t1 = new Task(delegate { }, ct); // Notice we aren't throwing an OCE.
cts.Cancel();
try
{
t1.RunSynchronously();
Assert.True(false, string.Format("RunSynchronouslyTest: > error: Should have thrown an exception"));
}
catch (InvalidOperationException)
{
// Assert.True(false, string.Format("RunSynchronouslyTest: > properly threw exception: {0}", e.Message));
}
catch (Exception e)
{
Assert.True(false, string.Format("RunSynchronouslyTest: > error: threw wrong exception: {0}", e.Message));
}
// Executing RunSynchronously() on a continuation task
t1 = new Task(delegate { });
Task t2 = t1.ContinueWith((completedTask) => { });
try
{
t2.RunSynchronously();
Assert.True(false, string.Format("RunSynchronouslyTest - continuation task: > error: Should have thrown an exception"));
}
catch (InvalidOperationException)
{
// Assert.True(false, string.Format(" > properly threw exception: {0}", e.Message));
}
catch (Exception e)
{
Assert.True(false, string.Format("RunSynchronouslyTest - continuation task: > error: threw wrong exception: {0}", e.Message));
}
t1.Start();
t1.Wait();
// Executing RunSynchronously() on promise-style Task
Task<int> f1 = new TaskCompletionSource<int>().Task;
try
{
f1.RunSynchronously();
Assert.True(false, string.Format("RunSynchronouslyTest - promise-style Task: > error: Should have thrown an exception"));
}
catch (InvalidOperationException)
{
//Assert.True(false, string.Format(" > properly threw exception: {0}", e.Message));
}
catch (Exception e)
{
Assert.True(false, string.Format("RunSynchronouslyTest - promise-style Task: > error: threw wrong exception: {0}", e.Message));
}
}