本文整理汇总了C#中System.Threading.CancellationTokenSource.CancelOnEscape方法的典型用法代码示例。如果您正苦于以下问题:C# CancellationTokenSource.CancelOnEscape方法的具体用法?C# CancellationTokenSource.CancelOnEscape怎么用?C# CancellationTokenSource.CancelOnEscape使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Threading.CancellationTokenSource
的用法示例。
在下文中一共展示了CancellationTokenSource.CancelOnEscape方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildDataGridCellContent
public static async void BuildDataGridCellContent(DataGridCell cell, Func<CancellationToken, Task<FrameworkElement>> getContentFunction)
{
var originalContent = cell.Content;
using (var cancellationTokenSource = new CancellationTokenSource())
{
FrameworkElement element;
KeyEventHandler keyDownHandler = (sender, args) => cancellationTokenSource.CancelOnEscape(args.Key);
try
{
cell.KeyDown += keyDownHandler;
cell.Content = CreateTextBlock("Loading... ");
element = await getContentFunction(cancellationTokenSource.Token);
}
catch (OperationCanceledException)
{
cell.Content = originalContent;
return;
}
catch (Exception exception)
{
var textBlock = CreateTextBlock(exception.Message);
textBlock.Background = Brushes.Red;
element = textBlock;
}
finally
{
cell.KeyDown -= keyDownHandler;
}
cell.Content = ConfigureAndWrapUsingScrollViewerIfNeeded(cell, originalContent, element);
}
}