
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;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
delegate void SendDelete(SendArgs args);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.comboBox1.SelectedIndex = 1;
this.comboBox2.SelectedIndex = 3;
Thread thread = new Thread(CrossThreadFlush);
thread.IsBackground = true;
thread.Start();
}
private void txt(SendArgs ar)
{
//根据传过来的comBox值执行一段自定义的动作。。
MessageBox.Show(ar.str1, ar.str2);
}
private void CrossThreadFlush()
{
//while (true)
//{
SendArgs args = new SendArgs();
//
//这里使用的是匿名委托
//
// this.BeginInvoke((MethodInvoker)delegate{
// args.str1 = this.comboBox1.Text;
// //
// //有几个都可以,在参数类里面加就可以了
// //
// args.str2 = this.comboBox2.Text;
// }, args
//);
////this.BeginInvoke(new SendDelete(InvokeMethod), args); //异步
this.Invoke(new SendDelete(InvokeMethod), args); //同步
txt(args);
//}
}
void InvokeMethod(SendArgs args)
{
args.str1 = this.comboBox1.Text;
//
//有几个都可以,在参数类里面加就可以了
//
args.str2 = this.comboBox2.Text;
}
}
public class SendArgs : EventArgs
{
public string str1;
public string str2;
public string str3;
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
delegate void SendDelete(SendArgs args);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.comboBox1.SelectedIndex = 1;
this.comboBox2.SelectedIndex = 3;
Thread thread = new Thread(CrossThreadFlush);
thread.IsBackground = true;
thread.Start();
}
private void txt(SendArgs ar)
{
//根据传过来的comBox值执行一段自定义的动作。。
MessageBox.Show(ar.str1, ar.str2);
}
private void CrossThreadFlush()
{
//while (true)
//{
SendArgs args = new SendArgs();
//
//这里使用的是匿名委托
//
// this.BeginInvoke((MethodInvoker)delegate{
// args.str1 = this.comboBox1.Text;
// //
// //有几个都可以,在参数类里面加就可以了
// //
// args.str2 = this.comboBox2.Text;
// }, args
//);
////this.BeginInvoke(new SendDelete(InvokeMethod), args); //异步
this.Invoke(new SendDelete(InvokeMethod), args); //同步
txt(args);
//}
}
void InvokeMethod(SendArgs args)
{
args.str1 = this.comboBox1.Text;
//
//有几个都可以,在参数类里面加就可以了
//
args.str2 = this.comboBox2.Text;
}
}
public class SendArgs : EventArgs
{
public string str1;
public string str2;
public string str3;
}
}
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端