小编thi*_*ink的帖子

C#:String作为事件的参数?

我有一个用于表单的GUI线程和另一个计算事物的线程.

表单有一个richtTextBox.我希望worker-thread将字符串传递给表单,以便每个字符串都显示在文本框中.

每次在工作线程中生成一个新字符串时,我都会调用一个事件,现在应该显示该字符串.但我不知道如何传递字符串!这是我到目前为止所尝试的:

///// Form1
private void btn_myClass_Click(object sender, EventArgs e)
{
    myClass myObj = new myClass();
    myObj.NewListEntry += myObj_NewListEntry;
    Thread thrmyClass = new Thread(new ThreadStart(myObj.ThreadMethod));
    thrmyClass.Start();
}

private void myObj_NewListEntry(Object objSender, EventArgs e)
{
    this.BeginInvoke((MethodInvoker)delegate
    {
        // Here I want to add my string from the worker-thread to the textbox!
        richTextBox1.Text += "TEXT"; // I want: richTextBox1.Text += myStringFromWorkerThread;
    });
}
Run Code Online (Sandbox Code Playgroud)
///// myClass (working thread...)
class myClass
{
    public event EventHandler NewListEntry;

    public void ThreadMethod()
    {
        DoSomething();
    }

    protected …
Run Code Online (Sandbox Code Playgroud)

.net c# events multithreading event-handling

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

.net ×1

c# ×1

event-handling ×1

events ×1

multithreading ×1