我的窗体中有许多的button,但是我想让他随机显示出来并在屏幕上停留一段时间后自动消失,但同时随机显示button的线程不能受干扰。
本来我以为应该很简单,但是线程学的不好,所以……呵呵,拜托前辈们了。
c#多线程问题,书到用时方恨少啊!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-01 14:56关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
可以使用以下方法实现:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace CsharpMultiThreadTest { class Program { static void Main(string[] args) { // 创建一个列表来存储按钮对象 List<Button> buttons = new List<Button>(); for (int i = 0; i < 10; i++) { // 创建一个新的按钮对象,并将其添加到列表中 Button button = new Button(); button.Text = "Button" + i.ToString(); buttons.Add(button); } // 创建一个新的线程来处理按钮的显示和消失 Thread thread = new Thread(ShowAndHideButtons); thread.Start(); Console.ReadKey(); } private static void ShowAndHideButtons() { // 随机选择一个按钮进行显示和隐藏操作 Random random = new Random(); int index = random.Next(buttons.Count); while (true) { if (buttons[index].Visible == true) { buttons[index].Visible = false; Console.WriteLine("Button {0} is hidden.", buttons[index].Text); Thread.Sleep(500); // 等待一定时间后再显示 buttons[index].Visible = true; Console.WriteLine("Button {0} is shown again.", buttons[index].Text); Thread.Sleep(500); // 等待一定时间后再显示 } else { break; } } } } public class Button : System.Windows.Forms.Button { public Button() { Visible = true; } } }这个程序首先创建了一个包含10个按钮的对象列表。然后,它创建了一个新的线程(
thread)来执行ShowAndHideButtons方法。在ShowAndHideButtons方法中,我们随机选择一个按钮并检查它的可见性。如果按钮是可见的,我们就让它变为不可见;如果按钮是不可见的,我们就让其变为可见。这样,我们就可以让按钮在屏幕上的位置和时间上进行随机移动和变化。解决 无用评论 打赏 举报