对于多线程问题我理解太差,想从网上找些经典示例,但没找到!这些天正在做一个打字游戏。
就是说,让字母随机从窗体的上边沿往下掉,然后进行打字,如果成功,就消失。希望大家帮帮忙!谢谢!

解决方案 »

  1.   

    线程参考
    http://blog.csdn.net/jinjazz/archive/2008/05/06/2397136.aspx
      

  2.   

    打字游戏这个例子不太典型。
    用单线程很好做,一个UI线程加一个IO线程也很好做,每个字母一个线程也可以。
    第二个还算沾边,前后两个都不是多线程练习的好例子。
      

  3.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Collections.Generic;
    using System.Threading;using Model;namespace BLL
    {
        public class SysCache
        {
            //用户缓存
            public static Dictionary<string, UserService> UserCache = new Dictionary<string, UserService>();        public static bool ThreadStop = true;        public static Thread oThreadUser;        public SysCache()
            {
                //系统初始化时加载
                CheckUser();
            }        /// <summary>
            /// 删除用户
            /// </summary>
            private static void CheckUser()
            {
                oThreadUser = new Thread(new ThreadStart(DeleteOldUser));
                oThreadUser.IsBackground = true;
                oThreadUser.Start();
            }        /// <summary>
            /// 每20分钟清理一次用户缓存
            /// </summary>
            private static void DeleteOldUser()
            {
                ArrayList keys = new ArrayList();            do
                {
                    Thread.Sleep(15000);
                    keys.Clear();
                    foreach (KeyValuePair<string, UserService> kvp in SysCache.UserCache)
                    {
                        DateTime dCachetime = ((UserService)kvp.Value).Cachetime;                    TimeSpan ts = DateTime.Now - dCachetime;                    if (Convert.ToInt32(ts.Minutes) > 20)       //超时时间20分钟
                        {
                            keys.Add(kvp.Key);
                        }
                    }                foreach (string key in keys)
                    {
                        SysCache.UserCache.Remove(key);
                    }            } while (ThreadStop == true);            oThreadUser.Abort();
            }
        }
    }
    参考之用:
      

  4.   

    using System.Threading;
    Thread thread1 = new Thread(new ThreadStart(ThreadProc));
                        thread1.Start();public static void ThreadProc()
    {
    MessageBox.Show("测试成功");
    }
    当然这是一个非常非常简单的线程,但是你所说的功能 是可以通过多线程来处理的,希望对你有帮助