【发布时间】:2014-11-07 01:46:24
【问题描述】:
我有一个非常奇怪的问题,我不知道如何解决。 我在不同的类中有这两种方法。 第一个在 CommandBar 中的按钮被按下时触发。
编辑:我创建了两个类似但较小的方法来向您展示问题:
private async void runCode(object sender, RoutedEventArgs e)
{
BottomAppBar.IsEnabled = false;
object result = await endlessLoopTest();
BottomAppBar.IsEnabled = true;
}
private async Task<object> endlessLoopTest()
{
var tokenSource = new System.Threading.CancellationTokenSource(500);
try
{
await Task.Run(() =>
{
while (true)
{
//Infinite loop to test the code
}
}, tokenSource.Token);
return null;
}
catch (OperationCanceledException)
{
return new TextBlock();
}
}
我添加了一个在 1500 毫秒后过期的取消令牌(我假设如果解释器需要更长的时间来处理代码,它已经被困在一个循环中)。
我第一次尝试它通常可以工作,但如果我再试一次,CommandBar 按钮将永远不会再次启用,所以我认为任务正在等待永远,我不知道为什么,因为我添加了 cancelToken .
你知道这里有什么问题吗? 感谢您的帮助!
塞尔吉奥
【问题讨论】:
-
请提供更好的代码示例。一种简洁,但实际上可以由其他人编译和运行。如果你也能省去脏话就好了。见stackoverflow.com/help/mcve
-
大声笑这是我正在解释的语言的实际名称啊哈哈哈我忘了删掉它,抱歉 :) 我用两个重现问题的小方法编辑了我的帖子,再次感谢您的帮助!
标签: c# xaml windows-store-apps windows-phone-8.1 win-universal-app