有两个对象。带有按钮和进度条的 Windows 窗体,以及处理算法的另一个对象。
在算法对象中有一个事件和一个属性。事件是ProgressChanged
,属性是Progress
(它是一个 int)。
在调用窗口中,按钮启动算法对象中的一组步骤。当每个步骤(或子步骤)发生时,ProgressChanged 事件就会触发,并且在窗口中有一个事件处理程序,它实质上相对于 Progress 属性递增进度条。
我遇到的问题是,由于算法有可能(并且可能性很高)运行相对较长的时间,我需要将它移动到它自己的后台线程并将事件推回窗口。
我的问题是我不完全确定在多线程方面我在做什么。我看过了Control.Invoke
,我有点迷路了。
有人可以指出我正确的方向吗?