.NET2005 或者更高版本在线程编程中,启用了安全线程的策略。Control.CheckForIllegalCrossThreadCalls = True;其默认代码。启用安全线程,
解决方法:1.Control.CheckForIllegalCrossThreadCalls = False;可以像.NET2003那样,操作
///
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ThreadingName
{
public partial class Form1 : Form
{
Thread tryThread;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
tryThread = new Thread(new ThreadStart(ShowMessage));
tryThread.Start();
}
private delegate void Show(string st);
private void ShowInfo(string str)
{
Invoke(new Show(MessageShow),str);
}
private void MessageShow(string s)
{
richTextBox1.Text = "nimanehao";
}
private void ShowMessage()
{
ShowInfo("nimanehao");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
tryThread.Abort();
Thread.Sleep(100);
}
}
}
以上代码是在UI前台创建 一个richTextBox 在后台一个新线程对其进行显示操作,利用Control.Invoke解决的