using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main( string[] args)
{
List< string> productList = new List< string>() { " AAAA ", " BBBB ", " CCCC ", " DDDD ", " EEEE " }; // 货物
MoveHelper moveHelper = new MoveHelper();
// 两个人或多个人时
int personCount = 6;
Dictionary< string, List< string>> person_Product = new Dictionary< string, List< string>>(); // 人与货物的对应表
// 给人分配任务
while (productList.Count > 0)
{
for ( int i = 0; i < personCount; i++)
{
if (productList.Count <= 0) break;
string key = " P " + (i+ 1).ToString();
List< string> plist= new List< string>();
if (!person_Product.Keys.Contains(key))
person_Product.Add(key, plist);
else plist = person_Product[key];
plist.Add(productList[ 0]);
productList.RemoveAt( 0);
}
}
// 有多个人就创建多个个线程
foreach ( string str in person_Product.Keys)
{
Thread thread = new Thread( new ParameterizedThreadStart(moveHelper.MoveThings));
MoveParameters ps = new MoveParameters(str, person_Product[str]);
thread.Start(ps);
// thread.Join(); // 当加上join后,所用时间是单线程的时间。并不会少时间。
}
Console.WriteLine( " ddddddddddddddddddddddddddddddddddd ");
Console.ReadLine();
}
}
public class MoveHelper
{
public void MoveThings( object product)
{
MoveParameters ps = product as MoveParameters;
if (ps.Products != null && ps.Products.Count > 0)
{
foreach ( string pro in ps.Products)
{
System.Threading.Thread.Sleep( 1000);
Console.WriteLine( " 货物 " + pro + " 已经被 " + ps.PersonName + " 成功送达目的地! " + System.DateTime.Now.ToString()); // YYYY-MM-DD HH-MM-mm
}
}
}
}
public class MoveParameters
{
public string PersonName { get; set; }
public List< string> Products { get; set; }
public MoveParameters() { }
public MoveParameters( string personName, List< string> products)
{
this.PersonName = personName;
this.Products = products;
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main( string[] args)
{
List< string> productList = new List< string>() { " AAAA ", " BBBB ", " CCCC ", " DDDD ", " EEEE " }; // 货物
MoveHelper moveHelper = new MoveHelper();
// 两个人或多个人时
int personCount = 6;
Dictionary< string, List< string>> person_Product = new Dictionary< string, List< string>>(); // 人与货物的对应表
// 给人分配任务
while (productList.Count > 0)
{
for ( int i = 0; i < personCount; i++)
{
if (productList.Count <= 0) break;
string key = " P " + (i+ 1).ToString();
List< string> plist= new List< string>();
if (!person_Product.Keys.Contains(key))
person_Product.Add(key, plist);
else plist = person_Product[key];
plist.Add(productList[ 0]);
productList.RemoveAt( 0);
}
}
// 有多个人就创建多个个线程
foreach ( string str in person_Product.Keys)
{
Thread thread = new Thread( new ParameterizedThreadStart(moveHelper.MoveThings));
MoveParameters ps = new MoveParameters(str, person_Product[str]);
thread.Start(ps);
// thread.Join(); // 当加上join后,所用时间是单线程的时间。并不会少时间。
}
Console.WriteLine( " ddddddddddddddddddddddddddddddddddd ");
Console.ReadLine();
}
}
public class MoveHelper
{
public void MoveThings( object product)
{
MoveParameters ps = product as MoveParameters;
if (ps.Products != null && ps.Products.Count > 0)
{
foreach ( string pro in ps.Products)
{
System.Threading.Thread.Sleep( 1000);
Console.WriteLine( " 货物 " + pro + " 已经被 " + ps.PersonName + " 成功送达目的地! " + System.DateTime.Now.ToString()); // YYYY-MM-DD HH-MM-mm
}
}
}
}
public class MoveParameters
{
public string PersonName { get; set; }
public List< string> Products { get; set; }
public MoveParameters() { }
public MoveParameters( string personName, List< string> products)
{
this.PersonName = personName;
this.Products = products;
}
}
}