小弟學習多執行緒,準備寫一個簡單的表單,往listview中寫入資料,目前功能基本實作,就是在寫入時,表單假死,請大佬幫忙,謝謝。
要求:
1、寫入程序中,結果實時顯示在listview中,表單不假死。
2、通過設定最大執行緒數,根據最大執行緒數并發寫入。
3、三個引數通過回圈傳給引數。
4、寫入時,通過順序寫入,目前沒按順序寫入。

附上目前的代碼,請大佬們指點。
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 ThreadStudy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
Person p = new Person(i, "劉備"+i.ToString(), "liubei123456");
ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadFunc),p);
}
}
private delegate void MyInvokeDelegate(object name);
private void Test(object o)
{
Person p = o as Person;
listView1.Items.Add(new ListViewItem(new string[] { p.Id.ToString(), p.Name, Thread.CurrentThread.ManagedThreadId.ToString() }));
}
public void ThreadFunc(object b)
{
MyInvokeDelegate myInvoke = new MyInvokeDelegate(Test);
this.BeginInvoke(myInvoke, b);
}
}
public class Person
{
public Person(int id, string name,string password) { Id = id; Name = name;Password = password; }
public int Id { get; set; }
public string Name { get; set; }
public string Password { get; set; }
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/260823.html
標籤:C#
