我需要解决一个问题,并需要一些投入。当我按button1时,我的gui会启动串行通信。我发送一些命令并接收一些数据。一旦我按下button1,我就会在另一个线程( GUI线程除外)中停留3-4秒,直到数据被完全传输。我想要的是一个对话框,弹出或类似的东西(显示一条繁忙的消息),当我按下button1时,这个弹出会自动地出现在另一个线程中,在这个线程中,当整个数据被传输时,就会发生串行通信。
有些人建议BackgroundWorker,但我不清楚。
我还得到了一个建议:“使用winform,将其FormBorderStyle设置为FixedDialog。将其设置为messagebox,并在其上放置一个进度条控件。您可以在线程处理开始时使用表单ShowDIalog,在结束时关闭。为了简单起见,进度条样式可以设置为连续。”
--考虑到我的场景--有什么好的解释或一种简单的替代方法吗?我想保持简单
发布于 2013-02-23 12:50:15
您可以使用表单上的Label设置简单消息,也可以在执行了几个命令之后使用进度条和更新进度栏来设置简单消息。如果您的一组命令是由用户指令启动的,那么就可以了。如果您必须与设备通信并响应设备警报,则DataReceivedEvent在C#中可以正常工作。你可以把你的代码写成。当设备向应用程序发送日期并在后台工作时,此事件将被触发。
发布于 2013-02-23 13:00:55
以下是逻辑:
如果您想要任何示例代码,那么请张贴您的书面代码,以便我可以给出一个实际的接近代码,以显示您的逻辑。
希望您理解或更好地发布您的代码。
发布于 2013-02-23 13:02:01
BackgroundWorker确实是最好的选择。有一个非常彻底的HowTo right 这里。
https://stackoverflow.com/questions/15040663
复制相似问题