苏飞论坛

标题: 想问下 阻塞进程的问题 [打印本页]

作者: fsdsdffdsa    时间: 2014-6-3 09:21
标题: 想问下 阻塞进程的问题
本帖最后由 fsdsdffdsa 于 2014-6-3 09:25 编辑

[C#] 纯文本查看 复制代码
                   、              //新开子窗口进行登录操作
                    frmBrowse = new FrmWebbrowse();               
                     frmBrowse.userName = Convert.ToString(dt.Rows["userName"]);
                    frmBrowse.passWord = Convert.ToString(dt.Rows["passWord"]);
                    frmBrowse.Show();
                   //子窗口登录后回传参数到主窗口 ,执行大量网络操作在函数
GetMoney 中,这里导致主窗口假死
                    frmBrowse.GetMoney += new DelegateText(GetMoney);



主窗口会开一个f子窗口frmBrowse 操作webbrowse,操作完毕后,回传的参数再执行主窗口的GetMoney 函数,由于GetMoney 大量请求网络资源,导致窗口假死,求教如何有效的避免主窗口假死,我是加了
[mw_shl_code=csharp,true]   

  ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback((object s) =>
                   {
                    frmBrowse.GetMoney += new DelegateText(GetMoney);
                     }), null);        //线程池[

/mw_shl_code]
貌似不起作用,求教可行的方法。。。。感觉方法应该很简单,只是小白不知道。。。。




作者: 站长苏飞    时间: 2014-6-3 09:28
使用多线程就行了,把你执行的方法放到线程就来执行,
作者: fsdsdffdsa    时间: 2014-6-3 09:36
标题: 想问下 阻塞进程的问题
本帖最后由 fsdsdffdsa 于 2014-6-3 09:37 编辑

[C#] 纯文本查看 复制代码
ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback((object s) =>
                   {
                    frmBrowse.GetMoney += new DelegateText(GetMoney);
                     }), null);        //线程池

这样为什么不行呢。。。。有点理解不了。。。小白问下。。。这样应该可以吧。。。



作者: 站长苏飞    时间: 2014-6-3 09:39
没必要用线程池,
[C#] 纯文本查看 复制代码
 Thread pingTask = new Thread(new ThreadStart(delegate
               {
//你的方法
               }));
                pingTask.Start();


这亲就够了

作者: fsdsdffdsa    时间: 2014-6-3 10:09
多谢 ,貌似 还是卡。。。。奇怪了。。。。
作者: 站长苏飞    时间: 2014-6-3 10:13
fsdsdffdsa 发表于 2014-6-3 10:09
多谢 ,貌似 还是卡。。。。奇怪了。。。。

与界面相关的不要放这里就行了,安原理是不会卡的,卡有可能不是这里问题,会不会是其他地方的问题。
作者: fsdsdffdsa    时间: 2014-6-3 10:42
这里的操作有  请求网络资源,更新 界面textbox,难道是操作界面UI的时候卡的。。。。有没有什么方法。。。。




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4