从while循环调用线程时,Windows窗体GUI被冻结.如何使Gui做出响应? [英] windows form GUI gets freezed when calling the thread from the while loop. How to make Gui responsive?

查看:86
本文介绍了从while循环调用线程时,Windows窗体GUI被冻结.如何使Gui做出响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

class ...
{
   onClick()
   {
      while(true)
      {
        //call the thread from here
        threadpool(request)//send request to thread using thread pool
      }
   }

   //the function for thread
   threadfunction()//function that thread calls
   {

   // I am not able to change the textbox/datagridview in windowsform from here the main ui gets stuck // 

   }
}

我不想更改上述逻辑,因为有可能因为我的程序被卡住而从线程的函数同时更新datagrid.

I dont want to change the above logic is it possible to update datagrid simaltaneously from function for thread because my program just get stuck.

推荐答案

while (true)应该在线程函数内,而不在onClick中.否则,GUI会卡住,因为它不断执行while(true).

The while (true) should be inside the threadfunction, not in the onClick. Otherwise the GUI gets stuck because it's executing endlessly the while(true).

这篇关于从while循环调用线程时,Windows窗体GUI被冻结.如何使Gui做出响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆