主要代码如下:
MyThread my = new MyThread(this);
thrs[i] = new Thread(new ThreadStart(TestUserLogin));
线程代码如下
void TestUserLogin()
{
Thread thisThread = Thread.CurrentThread;
try
{
g_uif.UserName = textUserName.Text.ToUpper();//无法取值
---------------------------------
小弟刚接触多线程,望各位大虾不吝赐教,感激涕零。
MyThread my = new MyThread(this);
thrs[i] = new Thread(new ThreadStart(TestUserLogin));
线程代码如下
void TestUserLogin()
{
Thread thisThread = Thread.CurrentThread;
try
{
g_uif.UserName = textUserName.Text.ToUpper();//无法取值
---------------------------------
小弟刚接触多线程,望各位大虾不吝赐教,感激涕零。
解决方案 »
- 这个是一个框架还是?
- 大家好,C#连接SQL2000问题
- 急!!!!!在VS2003中如何从一个XML文件绑定到数据控件
- 100分!登陆验证,能者请进!
- 在使用datagrid时发现小数点的问题,不清楚怎么回事?
- webbrowser.Navigate加载完后,控件所在程序自动弹出
- 就我个人的了解,.NET的东西以后的发展前景很不错,最好的选择就是C++,就是刚开始学C++有点太困难,先学C#再往C++上转能好转点?对吗 ?
- GameObject[] cannonBalls = new GameObject[maxCannonBalls]; 其中GameObject是一个类, 那么这句话是什么意思呢?
- 引用项目方法的问题. 请大家帮忙!! 在线等.
- 字符串操作遇到的怪事
- 怎样通过反射加载来获取一个窗体所有的控件列表WINFORM
- ContextUtil.SetComplete()出错,没有MTS对象上下文
是一个控件,对么?多线程直接访问控件的话,会报线程安全性错误。一个方法是关闭线程安全性检查(不推荐),另一个方法是用代理来访问。
如:
private delegate void AddTextUnSafe(string Text);
public void Addtext(string text)
{
if (this.richTextBox1.InvokeRequired)
{
AddTextUnSafe aus = new AddTextUnSafe(Addtext);
object obj = this.richTextBox1.BeginInvoke(aus, new string[] { text });
}
else
{
this.richTextBox1.AppendText(text + "\n");
}
}
thrs[i] = new Thread(new ParameterizedThreadStart(TestUserLogin),textUserName.Text.ToUpper());
线程代码如下
void TestUserLogin(object state)
{
Thread thisThread = Thread.CurrentThread;
try
{
g_uif.UserName = string.Format("{0}",state);
public String ReadControlText(Control control)
{
if (this.InvokeRequired)
{
this.Invoke(new ReadControlTextHandle(ReadControlText), control);
}
else
{
return control.Text;
}
}直接调用:g_uif.UserName = ReadControlText(textUserName);上面代码是随手写的,没测试过,楼上理解后自己测试吧