public FormMain()
{
InitializeComponent();
FormMain.CheckForIllegalCrossThreadCalls = false;
}
加一句这个看看能不能行,不过这个不安全,最好自己用委托来实现.
{
InitializeComponent();
FormMain.CheckForIllegalCrossThreadCalls = false;
}
加一句这个看看能不能行,不过这个不安全,最好自己用委托来实现.
解决方案 »
- Click事件方法的执行顺序请教
- XP操作系统32位机C#2005环境下开发的应用程序如何在WIN7 64位机器上运行?
- 框架套框架,用弹出框修改数据后,返回列表页面刷新了,可是数据无变化
- 在c#中怎样实现一键换肤..转换成苹果皮肤
- c# 自定义结构体内数组报错
- winFrom如何把TreeView嵌入到DataGridView的单元格中
- 问个菜鸟问题 关于panel1
- vs2003-->vs2010
- 哈哈.net真好.学了2个月的.net能做出学Java一年才能做出的网站.
- 让我头大的问题,关于结构体!
- 跪求c#加密方面的资源
- C#代码转VB.NET问题,急急急急急急急急急急急急急急急急急!!!
当然,如果你能自己写出解释Html语言的程序,那可以直接把DocumentText直接传递给子线程处理,这样就不会占用主线程的CPU时间。
或者用委托来写
delegate void ShowCustomerInfo(string message);public void BuildText(byte[] dataByte, int offset, int count)
{
try
{
string serverMessage = string.Empty;
byte[] _bt = GetByte(dataByte);
myBuilder.Append(Encoding.UTF8.GetString(_bt), 0, count - 2);
serverMessage = myBuilder.ToString();
if (Tools.VerdictTel(serverMessage))
{
//必须由主线程通过委托显示新窗体,否则新窗体关闭有错误。
//NewForm(serverMessage);
this.Invoke(new ShowCustomerInfo(NewForm), serverMessage);
}
//else
//MessageBox.Show(serverMessage);
//Empty the StringBuilder
myBuilder = new StringBuilder();
}
catch (Exception ex)
{
Tools.WriteLog(ex.Message);
}
}/// <summary>
/// 显示客户信息窗体
/// </summary>
/// <param name="message"></param>
private void NewForm(string message)
{
CustomerInfo ci = new CustomerInfo();
ci.CusTel = message;
ci.Show();
}