Tag: 阻止

“阻止”直到满足某些条件的最佳方法

我想创建一些以通用方式使用的方法,它是否会阻塞(除非某个超时到期),直到满足给定条件。 代码中的用法类似于: WaitUntil( condition ); 我尝试使用While(..)循环实现它,但这似乎是浪费。 在当前的实现中,我正在初始化一个在TIMEOUT到期的“一次性”计时器。 我正在运行一个while循环,并检查计时器是否已超时,如果有,则抛出exception。 有没有简单而有效的技术来实现这种方法?

如何创建非模态表单但阻止?

听起来应该很奇怪,但这只是为了我的爱好。 我想要一个(自定义)消息框弹出一个YesNo按钮,理想情况下应该阻止代码。 但我应该能够点击父窗体,这样我就可以关闭消息框而无需专门点击消息框按钮(相当于在消息框中单击否)。 像这样的东西: void Foo() { CustomMsgBox.Show(“do you really wanna delete?”, CustomMsgBox.Buttons.YesNo); //block the code here, but user should be able to click on form, so that its equivalent to have clicked No; //if clicked No, return; //delete. } 所以我认为的解决方案是使自定义消息框非模态 – 以便用户可以单击表单,但我无法阻止代码..我怎么能这样做? 它看起来像这样: void Foo() { NonModalMsgBox.Show(“do you really wanna delete?”, CustomMsgBox.Buttons.YesNo); //block thread […]

C#:阻止函数调用直到满足条件

我正在开发一个C#Winforms应用程序,部分应用程序将使用AsyncUpload将文件上传到Web服务器(使用它,因为需要使用porgress回调),在C#程序中 我有一个简单的for循环调用上传function for(int i=0;i < 10 ; i++) { Uploadfun(); } 这种乐趣有些神奇: Uploadfun() { // Logic comes here // webClient.UploadFileAsync runs a 2nd thread to perform upload .. webClient.UploadFileAsync(uri, “PUT”, fileNameOnHD); } 并且在完成异步上载时调用的回调 Upload_Completed_callback() { //Callback event } 编辑 逻辑顺序: 乐趣被召唤(来自循环) 有趣的逻辑被执行和完成.. 回到for循环 当UploadFileAsync(在另一个线程中运行某些逻辑)结束时,最终将调用回调 问题是在第3点,当执行回到for循环时,我需要阻止循环继续,直到调用回调。