using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Collections;
namespace WinformMultiThreading
{
public partial class Form1 : Form
{
int[] s1 = new int[5] { 1, 2, 3, 4, 5 };
string[] s2 = new string[5] { "000", "001", "002", "003", "004" };
Thread t1;
Thread t2;
public delegate void setText(string str);
setText st;
public Form1()
{
InitializeComponent();
st = new setText(this.SetTextBox1);
}
public void SetTextBox1(string str)
{
if (this.InvokeRequired)
{
this.Invoke(this.st, str);
}
else
{
this.textBox1.Text = str;
}
}
public static object o = new object();
public void F1()
{
for (int i = 0; i < 100000; i++)
{
string str ="func1:"+ i.ToString()+ "/r/n";
st(str);
Thread.Sleep(1);
}
}
public void F2()
{
for (int i = 0; i < 100000; i++)
{
string str = "Func2:"+i.ToString() + "/r/n";
st(str);
Thread.Sleep(1);
}
}
private void button1_Click(object sender, EventArgs e)
{
t1 = new Thread(new ThreadStart(F1));
t2 = new Thread(new ThreadStart(F2));
t1.Start();
t2.Start();
}
}
}
本文介绍了一个使用C# Winform实现的简单多线程应用程序案例。该应用通过两个线程更新界面文本框的内容,并展示了如何正确地进行跨线程操作及UI更新。

4万+

被折叠的 条评论
为什么被折叠?



