本帖最后由 l171147904 于 2010-03-08 11:29:03 编辑

解决方案 »

  1.   


    在线等!谢谢Thread.Sleep 写在 遍历里面,
    执行完毕时间 将是:1800
      

  2.   

    这个不明白。
    int[][] a = new int[][2];
    int[] b = new int[2];function a
    {
        while(true)
        {
            lock(a)
            {
                随机取一个赋给b
                从a中删除b
            }
            延时 b[0] 秒
             执行操作
        }
    }开N个执行a方法的线程
      

  3.   

    定义数据 a[][];
    for循环一下,
         判断一下,是否最后一个,不是
             取一个值,new一个timer延时a[N][0]毫秒, 然后取a[N][1],操作
        不是
             取一个值,new一个timer延时a[N][0]毫秒减去程序已执行的毫秒, 然后取a[N][1],操作
    结束
      

  4.   


    是一个思路。谢谢!我现在用多线程处理!还考虑 使用 线程池(具体不熟悉,望7楼给个实例)我当前:
    int coun = ds_SCENE.Tables[0].Rows.Count;
                    Thread[] fThreadArray = new Thread[coun];
                    for (int i = 0; i < coun; i++)
                        fThreadArray[i] = new Thread(new ThreadStart(DoSomeThings()));
                    for (int i = 0; i < coun; i++)
                        fThreadArray[i].Start();public void DoSomeThings()
    {
    //还没测试
    }
      

  5.   

            MyData de = new MyData();
            private void Form1_Load(object sender, EventArgs e)
            {
                int[,] data = new int[,] { { 100, 1 }, { 200, 1 }, { 500, 0 }, { 1000, 1 } };            for (int i = 0; i < 4; i++)
                {
                    MyData de = new MyData();
                    de.waittime = data[i, 0];
                    de.value = data[i, 1];
                    ThreadPool.QueueUserWorkItem(new WaitCallback(JanitorMethod), de);
                }
            }        private void JanitorMethod(object ob)
            {
                this.de = (MyData)ob;
                Thread.Sleep(de.waittime);
                Console.WriteLine("等待" + de.waittime + "后, 取值:" + de.value);
            }        struct MyData
            {
                public int waittime;
                public int value;
            }