第一次接触线程:
目前需求功能: 打开程序,程序时刻监听键盘事件,还有一个就是可以点击button调用一个Dll 模块,现在在调用DLL模块我想放到线程中处理,不知这样可不可以,(简易)示例代码,如下所示,谢高手指点private void Form1_Load(object sender, System.EventArgs e)
{
Thread trd = new Thread(new ThreadStart(this.ThreadTask));
trd.IsBackground = false;
trd.Start();
}
private void ThreadTask()
{
MessageBox.Show("load测试");
OA_Incept_test.inceptMainFm fr=new OA_Incept_test.inceptMainFm("0678","000");
fr.Show();
MessageBox.Show("end测试");
}就是像这样,当窗体打开时,加载窗体一闪而过,就没有了,不知道怎么处理,请高手指点!谢谢!
目前需求功能: 打开程序,程序时刻监听键盘事件,还有一个就是可以点击button调用一个Dll 模块,现在在调用DLL模块我想放到线程中处理,不知这样可不可以,(简易)示例代码,如下所示,谢高手指点private void Form1_Load(object sender, System.EventArgs e)
{
Thread trd = new Thread(new ThreadStart(this.ThreadTask));
trd.IsBackground = false;
trd.Start();
}
private void ThreadTask()
{
MessageBox.Show("load测试");
OA_Incept_test.inceptMainFm fr=new OA_Incept_test.inceptMainFm("0678","000");
fr.Show();
MessageBox.Show("end测试");
}就是像这样,当窗体打开时,加载窗体一闪而过,就没有了,不知道怎么处理,请高手指点!谢谢!
假若在使用Hook的过程中因为调用DLL而出问题,那么就考虑一下是不是因为这个DLL文件点用资源太多;
假若是以上原因,那么建议两种解决办法:
1、优化你的DLL;
或者
2、改造你的程序,将DLL中的代码移植到你的主程序中。
{ Thread trd = new Thread(new ThreadStart(threadone));//2
trd.IsBackground =true;
trd.Start();
}
void threadone()
{
this.Invoke(new AddNodeDelegate(ThreadTask));
}
delegate void AddNodeDelegate(); 但能过这种方法窗口可以显示,但在窗口关闭时,窗体反应好象很慢,请高手继续指点!谢谢!同时,键盘接收不到录入的字符?
什么意思呀?你知不知道呀?
private void InitializeComponent()
{
}
加载比较好点吧
不知道大家有没有用过键盘勾子,也不知是电脑速度原因,还是程序原因,当直接加载时,键盘就会捕捉不到字符了?
怎么没有显示呢,在线程里面呀?