BeginInvoke应该在线程内调用。
执行BeginInvoke的线程应该是主线程,
而在你的程序里,是thread1在执行BeginInvoke
当然无法进行。
若有一个窗体,应该是form1.BeginInvoke才会有效。
我可能说得不明白,明白一点说,就是form1和消费线程放在不同的类里,区分出来就行了
执行BeginInvoke的线程应该是主线程,
而在你的程序里,是thread1在执行BeginInvoke
当然无法进行。
若有一个窗体,应该是form1.BeginInvoke才会有效。
我可能说得不明白,明白一点说,就是form1和消费线程放在不同的类里,区分出来就行了
解决方案 »
- C# 截屏功能抓不到无边框透明背景窗口
- 关于WebBrowser打造浏览器程序时控件安装的问题
- 怎么在OWC10(是OWC10不是OWC11)中画3D的图画?
- 对话框 帮帮忙看下
- C# 简单问题
- 如何把数据表中时间字段中的年份?数据表中时间表示是这样的:2005-12-5 12:11:12?
- 急求:C#操作数据库的范例
- 请问基于COM控件开发比基于.NET Framework组件的开发有哪些缺陷?!
- 如何获得当前Windows登陆用户的用户名和密码
- sql server2005 怎么远程连接到 服务器的数据
- C# WinForm: DataSet中DataRelaion问题
- 绝对初学的问题,如何编译.cs
执行BeginInvoke的线程应该是主线程,
而在你的程序里,是thread1在执行BeginInvoke
当然无法进行。
若有一个窗体,应该是form1.BeginInvoke才会有效。
我可能说得不明白,明白一点说,就是form1和消费线程放在不同的类里,区分出来就行了
class1
private void ButtonClick();
{
thread1=new Thread(new ThreadStart(Class2.MRun));
thread1.IsBackground=true;
thread1.Start();
}class2
class3 c3=new class3();
private void MRun()
{
MethodInvoker mi1 = new MethodInvoker(c3.method);
BeginInvoke(mi1)
}
class3
//这里放你的主线程