C#多线程(Winform和WPF)

Winform

Thread othread = new Thread(new ParameterizedThreadStart(getResult));
				othread.IsBackground = true;
				othread.Start((Object)(m));
				Thread.Sleep(50);
private delegate void LstDelegate(int ID);
private async void getResult(object _xStr)
{
   string[] xStr = (string[])_xStr;
   foreach (string j in sArray)
   {
	   
   } 
   LstDelegate D = new LstDelegate(Fun);
   this.Dispatcher.Invoke(D, new object[] {int.Parse(ID)});
}
new Thread((ThreadStart)delegate
	{
		try
		{                  
			this.Dispatcher.Invoke(new Action(() =>
			{
			}));
		}
		catch { }
	}).Start();
new Thread((ThreadStart)delegate
	{
		try
		{                  
			System.Windows.Application.Current.Dispatcher.Invoke(() =>
            {
               // 在主 UI 线程上执行需要的操作
            });
		}
		catch { }
	}).Start();

异步方法

new Thread(async () =>
{
    try
    {
        await Application.Current.Dispatcher.InvokeAsync(() =>
        {
            // 在主 UI 线程上执行需要的操作
        });
    }
    catch { }
}).Start();

Wpf

ThreadPool.QueueUserWorkItem(delegate
    {
		try 
		{
			this.Dispatcher.Invoke((System.Windows.Forms.MethodInvoker)delegate
			{
					
			});
		}
		catch { }
    });
posted @   多见多闻  阅读(108)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示