亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usagehistorycontrol.cs

?? 線程池實例,1.1版本,用于代替.net自帶線程池
?? CS
字號:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace UsageControl
{
	/// <summary>
	/// Summary description for UsageHistoryControl.
	/// </summary>
	public class UsageHistoryControl : System.Windows.Forms.UserControl
	{
		/// <summary> 
		/// Required designer variable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		private const int squareWidth = 12;
		private const int maxLastValuesCount = 2000;
		private const int shiftStep = 3;

		private int shift = 0;

		private int [] lastValues1 = new int[maxLastValuesCount];
		private int [] lastValues2 = new int[maxLastValuesCount];
		private int nextValueIndex;
		private int lastValuesCount;

		private int max = 100;
		private int min = 0;

		public UsageHistoryControl()
		{
			// This call is required by the Windows.Forms Form Designer.
			InitializeComponent();

			EnableDoubleBuffering();
			Reset();
		}

		public void Reset()
		{
			lastValues1.Initialize();
			lastValues2.Initialize();
			nextValueIndex = 0;
			lastValuesCount = 0;
			Invalidate();
		}

		/// <summary> 
		/// Clean up any resources being used.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Component Designer generated code
		/// <summary> 
		/// Required method for Designer support - do not modify 
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			// 
			// UsageHistoryControl
			// 
			this.BackColor = System.Drawing.Color.Black;
			this.Name = "UsageHistoryControl";

		}
		#endregion

		private void EnableDoubleBuffering()
		{
			// Set the value of the double-buffering style bits to true.
			this.SetStyle(ControlStyles.DoubleBuffer | 
				ControlStyles.UserPaint | 
				ControlStyles.AllPaintingInWmPaint,
				true);
			this.UpdateStyles();
		}

		protected override void OnResize(EventArgs e)
		{
			// Invalidate the control to get a repaint.
			this.Invalidate();
		}

		protected override void OnPaint(PaintEventArgs e)
		{
			Graphics g = e.Graphics;

			for(int i = 0; i <= ClientRectangle.Width+squareWidth; i += squareWidth)
			{
				g.DrawLine(Pens.Green, i-shift, 0, i-shift, ClientRectangle.Height);
			}

			for(int i = 0; i < ClientRectangle.Height; i += squareWidth)
			{
				g.DrawLine(Pens.Green, 0, i, ClientRectangle.Width, i);
			}

			int startValueIndex = (nextValueIndex-1+maxLastValuesCount)%maxLastValuesCount;

			int prevVal1 = GetRelativeValue(lastValues1[startValueIndex]);
			int prevVal2 = GetRelativeValue(lastValues2[startValueIndex]);

			for(int i = 1; i < lastValuesCount; ++i)
			{
				int index = nextValueIndex - 1 - i;
				if (index < 0)
				{
					index += maxLastValuesCount;
				}

				int val1 = GetRelativeValue(lastValues1[index]);
				int val2 = GetRelativeValue(lastValues2[index]);

				g.DrawLine(
					Pens.Red,
					ClientRectangle.Width-(i-1)*shiftStep, ClientRectangle.Height-prevVal2,
					ClientRectangle.Width-i*shiftStep, ClientRectangle.Height-val2);

				g.DrawLine(
					Pens.LawnGreen,
					ClientRectangle.Width-(i-1)*shiftStep, ClientRectangle.Height-prevVal1,
					ClientRectangle.Width-i*shiftStep, ClientRectangle.Height-val1);

				prevVal1 = val1;
				prevVal2 = val2;
			}
		}

		private int GetRelativeValue(int val)
		{
			int result = val * (ClientRectangle.Height-2) / max + 1;
			return result;
		}

		public void AddValues(int val1, int val2)
		{
			lastValues1[nextValueIndex] = val1;
			lastValues2[nextValueIndex] = val2;
			
			nextValueIndex++;
			nextValueIndex %= maxLastValuesCount;
			lastValuesCount++;
			if (lastValuesCount > maxLastValuesCount)
			{
				lastValuesCount = maxLastValuesCount;
			}
			
			shift += shiftStep;
			shift %= squareWidth;
			Invalidate();
		}

		public int Maximum
		{
			get
			{
				return max;
			}

			set
			{
				// Make sure that the maximum value is never set lower than the minimum value.
				if (value < min)
				{
					min = value;
				}

				max = value;

				// Invalidate the control to get a repaint.
				this.Invalidate();
			}
		}

	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91美女片黄在线观看91美女| 91亚洲大成网污www| 成人国产精品免费网站| 欧美精品在线一区二区三区| 亚洲国产高清aⅴ视频| 天天影视涩香欲综合网| av一二三不卡影片| 欧美zozo另类异族| 亚洲成人你懂的| 972aa.com艺术欧美| 精品国产不卡一区二区三区| 亚洲图片一区二区| 99久久99久久精品免费观看| 精品国产一区二区三区忘忧草| 亚洲欧美色一区| 岛国一区二区三区| 精品88久久久久88久久久| 蜜臀久久久久久久| 欧美日韩视频在线第一区 | 亚洲国产精品综合小说图片区| 久久91精品久久久久久秒播| 欧美日韩综合在线免费观看| 国产精品国产自产拍高清av| 国产在线精品不卡| 精品少妇一区二区三区免费观看 | 国产日产精品一区| 经典一区二区三区| 欧美岛国在线观看| 激情综合五月婷婷| 久久久久久久综合色一本| 美女视频网站久久| 日韩欧美在线网站| 美女精品一区二区| 精品久久久久99| 国产精品一区在线| 国产午夜精品久久久久久免费视 | 99精品久久99久久久久| 中文字幕乱码亚洲精品一区| 国产a久久麻豆| 国产精品久久久久一区二区三区 | 日韩你懂的在线观看| 狠狠网亚洲精品| 日韩三级.com| 国精产品一区一区三区mba桃花 | 亚洲免费资源在线播放| 91丨国产丨九色丨pron| 亚洲欧美另类久久久精品2019| 91免费视频网| 午夜久久久久久| 欧美xxxx在线观看| 国产一区二区0| 亚洲欧洲精品一区二区三区| 99国产一区二区三精品乱码| 亚洲一二三区不卡| 日韩视频一区二区三区在线播放| 久久99精品久久久| 国产亚洲美州欧州综合国| www.欧美日韩| 亚洲自拍偷拍欧美| 日韩一区二区在线看片| 久久精品国产**网站演员| 国产亚洲视频系列| 91电影在线观看| 美女视频第一区二区三区免费观看网站| 日韩精品中文字幕在线一区| 粉嫩aⅴ一区二区三区四区| 亚洲欧美成人一区二区三区| 88在线观看91蜜桃国自产| 国产盗摄一区二区三区| 亚洲制服丝袜在线| 日韩欧美国产小视频| 亚洲第一福利一区| 美女高潮久久久| 国产精品久久免费看| 欧美日韩国产精品成人| 国内精品在线播放| 一区二区三区免费| 久久嫩草精品久久久精品| 色婷婷av一区二区三区大白胸| 日韩精品1区2区3区| 中文一区二区在线观看| 91麻豆精品国产91久久久久久久久| 韩国女主播一区二区三区| 一个色综合网站| 国产片一区二区三区| 91精品国产入口| 99精品在线观看视频| 久88久久88久久久| 亚洲永久精品大片| 中文字幕在线观看不卡视频| 日韩久久久精品| 欧美色图12p| av亚洲精华国产精华精华| 国产麻豆精品在线| 免费人成黄页网站在线一区二区| 自拍偷自拍亚洲精品播放| 精品成人一区二区三区| 欧美卡1卡2卡| 日本韩国欧美三级| 99久久国产免费看| 成人一区在线看| 国产综合色产在线精品| 日韩电影在线观看电影| 亚洲美女视频在线观看| 国产精品乱人伦| 国产亚洲成年网址在线观看| 日韩一区二区三区观看| 欧美日韩精品欧美日韩精品一综合| 成人精品一区二区三区四区| 精品一区二区影视| 日本不卡视频在线观看| 天天综合色天天综合色h| 亚洲一区自拍偷拍| 亚洲高清视频中文字幕| 亚洲综合另类小说| 一区二区三区波多野结衣在线观看| 国产精品女人毛片| 国产精品丝袜黑色高跟| 国产激情精品久久久第一区二区| 欧美系列日韩一区| 理论电影国产精品| 久久精品国产澳门| 韩国成人福利片在线播放| 美国欧美日韩国产在线播放| 免费观看成人av| 精品系列免费在线观看| 国产一区日韩二区欧美三区| 激情图区综合网| 国产精品一级片在线观看| 国产a精品视频| 一本色道**综合亚洲精品蜜桃冫| 91在线观看成人| 欧美在线一二三| 欧美一区二区三区四区五区| 欧美一区二区免费视频| 久久这里只有精品首页| 久久久精品国产免费观看同学| 欧美国产日本视频| 亚洲最快最全在线视频| 日韩激情视频网站| 国产一区二区三区在线观看免费 | 欧美精品一区二区三区四区 | eeuss鲁片一区二区三区在线看| 成人午夜精品在线| 色老汉一区二区三区| 欧美精品三级在线观看| 亚洲精品在线三区| 亚洲视频一区在线| 日韩和欧美一区二区三区| 韩国精品一区二区| 色av一区二区| 欧美videos大乳护士334| 亚洲欧洲精品一区二区三区 | 亚洲综合丁香婷婷六月香| 丝袜亚洲另类丝袜在线| 国产在线视频不卡二| 一本一道久久a久久精品| 欧美一区二区美女| 亚洲激情综合网| 国产一区二区不卡| 欧美三级日韩三级国产三级| 久久综合给合久久狠狠狠97色69| 亚洲图片欧美激情| 久久av中文字幕片| 在线观看日产精品| 久久精品人人爽人人爽| 日韩在线卡一卡二| 99精品欧美一区二区三区小说 | 成人午夜激情在线| 69av一区二区三区| 亚洲激情在线激情| 国产成人午夜电影网| 777色狠狠一区二区三区| 最新国产成人在线观看| 国内精品自线一区二区三区视频| 色诱亚洲精品久久久久久| 久久久www免费人成精品| 五月天视频一区| 色先锋资源久久综合| 国产欧美1区2区3区| 久久成人综合网| 制服丝袜中文字幕一区| 亚洲美女视频在线| 成人丝袜视频网| 26uuu久久综合| 久久精品久久99精品久久| 精品视频全国免费看| 亚洲视频图片小说| 成人午夜视频福利| 国产视频视频一区| 国产一区二区三区在线观看精品 | 亚洲摸摸操操av| 成人av小说网| 国产精品进线69影院| 国产成人精品亚洲777人妖| 久久一区二区视频| 国产精品性做久久久久久| 久久香蕉国产线看观看99| 久久99久久久久久久久久久| 3d动漫精品啪啪一区二区竹菊|