国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C# 根據自定義線程定時器 生成隨機訂單

2019-11-17 02:30:56
字體:
來源:轉載
供稿:網友

C# 根據自定義線程定時器 生成隨機訂單

這個源之于一個朋友問我的一個問題,他說他們的需求是在一天之內隨機抽取數據生成訂單,還不能讓客戶看出來。

隨機生成的訂單還分概率抽取不一定的狀態值,那么根據我之前寫的定時器線程執行器,我們設計需要一個定時器去執行。

那么我們的定時器坑定需要一直運行,包括每天的情況。

創建SecondsTimerTask 由于是測試條件下,我們聲明5秒運行一次

 1 /// <summary> 2     /// 每秒執行的任務 3     /// </summary> 4     public class SecondsTimerTask : TimerTaskBase 5     { 6         /// <summary> 7         /// 定義一秒執行一次的 8         /// </summary> 9         public SecondsTimerTask()10             : base(0, 1000, false)11         {12 13         }14 15         List<int> ints1 = new List<int>() { 1, 2, 3, 4, 5 };16         List<int> ints2 = new List<int>() { 6, 7, 8, 9, 10 };17 18         string _ActionDay = string.Empty;19         int _ActionCount = 0;20 21         public override void Run()22         {23             string day = DateTime.Now.ToString("yyyy/MM/dd");24             if (!day.Equals(_ActionDay))25             {26                 //如果是非本日情況,重置條件27                 //可以根據自身的條件完成28                 ints1 = new List<int>() { 1, 2, 3, 4, 5 };29                 ints2 = new List<int>() { 6, 7, 8, 9, 10 };30                 _ActionDay = day;31                 _ActionCount = 0;32             }33             if (_ActionCount == 5)34             {35                 Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff: ") + "隨機生成訂單 今日任務完成");36                 return;37             }38             int ran = new Random(DateTime.Now.Millisecond).Next(0, 100000);//用0到10萬為隨機界限標準39             if (ran < 70000)//70%的概率這次執行需要生產訂單40             {41                 _ActionCount++;42                 int ranNext = new Random(DateTime.Now.Millisecond).Next(0, 100000);//用0到10萬為隨機界限標準43                 if (ranNext > 40000)44                 {45                     //60%的概率46                     int index = new Random(DateTime.Now.Millisecond).Next(0, ints1.Count);47                     int item = ints1[index];48                     Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff: ") + "隨機生成訂單60%的概率: " + item);49                     ints1.RemoveAt(index);50                 }51                 else52                 {53                     ///40%的概率54                     int index = new Random(DateTime.Now.Millisecond).Next(0, ints2.Count);55                     int item = ints2[index];56                     Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff: ") + "隨機生成訂單40%的概率: " + item);57                     ints2.RemoveAt(index);58                 }59             }60             else61             {62                 Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff: ") + " 根據隨機情況不生成訂單");63             }64         }65     }

請結合定時器線程章節,

 1     class PRogram 2     { 3  4         static void Main(string[] args) 5         { 6             TimerThread timerThread = new TimerThread(); 7             timerThread.AddTask(new SecondsTimerTask()); 8             Console.ReadLine(); 9         }10     }

我們來看看結果

上面的運行結果,大家注意時間,我是在今日任務完成的情況下,我直接修改系統時間為第二天,然后繼續第二天的任務

這樣就保證了程序如果一直在運行的情況下,完成每日的生成訂單的量。

但是需要注意的是,我沒有考慮如果程序重啟的情況,需要各位根據各自的情況進行修改~!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡东县| 象州县| 濉溪县| 渭源县| 彰化县| 西平县| 和政县| 图木舒克市| 聂荣县| 宁化县| 临沂市| 呈贡县| 宜良县| 界首市| 蓝山县| 桂平市| 平原县| 肃宁县| 沿河| 开阳县| 日喀则市| 察雅县| 穆棱市| 翼城县| 林周县| 石楼县| 阿拉善左旗| 阿合奇县| 新龙县| 达尔| 镇赉县| 芦溪县| 铅山县| 上蔡县| 寻甸| 大洼县| 姜堰市| 淮阳县| 南涧| 米林县| 昌黎县|