首页 > 解决方案 > C# - 使用静态方法编辑表单标签

问题描述

public static void Monitor0()
    {
        bool ToMineOrNot = Backend.ToMineOrNot;
        while (ToMineOrNot)
        {
            Form1 temp = new Form1();
            Form1.NonStaticDelegate = new Action(temp.setHashRate);
            Form1.NonStaticDelegate();
            Backend.hps = 0;
            Thread.Sleep(1000);
        }
        if (ToMineOrNot == false)
        {

        }
    }
    public void setHashRate()
    {
        hashrate.Text = Backend.hps.ToString();
    }

我必须让静态 Void 调用非静态 Void,我必须有 Monitor0 Static 因为它必须在线程中运行,并且 setHashRate() 必须是非静态的才能编辑标签(它是 Windows 窗体) :

Thread thread = new Thread(Monitor0);
thread.Start();

有谁知道我怎么能做到这一点?我不能这样做,因为标签不会改变:

Form1 form = new Form(); form.label1.Text = "text"

标签: c#multithreadingstaticnon-static

解决方案


推荐阅读