gpt4 book ai didi

c# - 图片框图像在C#中不会改变

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:05 25 4
gpt4 key购买 nike

我想在我的板(USB 模块)连接到计算机或断开连接时更改图片的框图像。但我认为我的线程只会执行一次。并且图片框的图像不会改变。

我的代码:

bool boardjoined = false;
void BoardConnecion()
{
foreach (var item in SerialPort.GetPortNames())
{
if (item == "COM3")
{
boardjoined = true;
DisplayImage(_pic_usb, "on.png");
}
else
{
boardjoined = false;
DisplayImage(_pic_usb, "off.png");
}

}
}

public Form1()
{
InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)
{
_pic_usb.Image = Bitmap.FromFile(Application.StartupPath + @"\off.png");

new Thread(new ThreadStart(BoardConnecion)).Start();

}

private void DisplayImage(PictureBox pic, string picName)
{
pic.Invoke(new EventHandler(delegate
{
pic.Image = Bitmap.FromFile(Application.StartupPath +@"\" + picName);
}));
}

最佳答案

您可以在 BoardConnection 中做一个永无止境的循环。

    void BoardConnecion()
{
while(true)
{
foreach (var item in SerialPort.GetPortNames())
{
if (item == "COM3")
{
boardjoined = true;
DisplayImage(_pic_usb, "on.png");
}
else
{
boardjoined = false;
DisplayImage(_pic_usb, "off.png");
}

}
Thread.Sleep(500);
}
}

您可能应该添加一个安全开关以脱离循环。 =)

关于c# - 图片框图像在C#中不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com