C#暂停循环并在单击按钮后继续
发布时间:2020-12-15 23:26:12 所属栏目:百科 来源:网络整理
导读:我有一个在初始化组件之后调用的方法,方法签名如下: public async void method_name (){ // code ...} 在该方法中,我有一个循环运行4个不同的if语句.我需要循环暂停每个if语句并等待用户按下按钮.由于按下该按钮将添加信息和内容.按下按钮后,我希望循环继续
我有一个在初始化组件之后调用的方法,方法签名如下:
public async void method_name () { // code ... } 在该方法中,我有一个循环运行4个不同的if语句.我需要循环暂停每个if语句并等待用户按下按钮.由于按下该按钮将添加信息和内容.按下按钮后,我希望循环继续,当然会在下一个if语句处暂停. 我想这样做等待Task.Delay(30000);但是如果用户在该计时器结束之前完成输入信息,他/她就会等待.而那效率不高. 解决方法
你可以使用TaskCompletionSource做到这一点.创建它并等待其Task属性,当单击一个按钮时,使用它来完成该任务.这允许异步地等待用户输入而不阻塞线程或使用Task.Delay.
TaskCompletionSource<bool> _tcs; async Task Foo() { // stuff _tcs = new TaskCompletionSource<bool>(); await _tcs.Task // other stuff } void ButtonClicked(object sender,EventArgs e) { _tcs.SetResult(false); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |