我试图将我的工作代码从我的 GUI 代码中分离成完全不同的类别, 但我想能够向我的 GUI 报告进度更新和文件输出。 例如, 我想让我的 GUI 对工人阶级说 : “ 从序列端读取十行, 但只要你收到, 就会向我报告你读到的每件事。 ”目前我最好的方法就是让 GUI 循环十次, 在每个循环中向工人阶级发送命令, 读一个东西, 然后把它还回去 。
我很想把所有环绕在工人阶级的侧面, 因为它会有更多关于现有数据的信息(数据的实际数量是可变的, 工人阶级已经可以获取现有数据的数量,
我调查过背景工作者,但这似乎只是报告在长期行动期间完成的百分比,除此之外没有任何其他结果,因此这对我在这里没有多大帮助。 有没有人知道我如何能够完成这个任务?
下面是一个程序外壳, 试图( 希望) 更好地说明我想做什么。 您将如何编辑代码来完成我所要求的任务?
图形用户界面主类 :
class Main_Class
{
...
/* Assume in the area we have instantiated these items and placed them on the form:
* Button DoSomething: A button to do something
* TextBox ShowInfo: A text box to report something from the worker class
*/
Worker_Class timewaster = new Worker_Class();
private void buttonDoSomething_Click(object sender, EventArgs e)
{
timewaster.a_lengthy_task();
}
}
单独的工人类别:
class Worker_Class
{
...//Various Setup stuff up here
void a_lengthy task()
{
int iteration = 0;
while(iteration < 10)
{
Datetime saveNOW = Datetime.Now; //lets say I report this back to the the GUI to write in that ShowInfo box
Thread.sleep(10000); //To waste time and make this lengthy
//Your code here to facilitate sending saveNOW back to the the Main_Class and display it on the ShowInfo textbox.
iteration++
}
}
}