วิธีการส่งเป็นสินค้าที่ใช้งานไปยังเก็บเธรดที่ โดยใช้ Visual c#

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 315460 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้แสดงวิธีการที่ส่งวิธีการเก็บเธรดที่สำหรับการดำเนินการ

ในสภาพแวดล้อม.NET กระบวนการแต่ละมีพูเธรดที่คุณสามารถใช้เพื่อเรียกใช้วิธี asynchronously

ความต้องการ


รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่จำเป็นต้องใช้:
  • Microsoft Visual Studio .NET หรือ Microsoft Visual Studio 2005
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • ใน Visual c# ภาษาการเขียนโปรแกรม

สร้างแบบ Visual c# แอพพลิเคชันที่ใช้สำหรับพูลโปรแกรมเธรด

  1. เริ่ม Microsoft Visual Studio .NET หรือ Microsoft Visual Studio 2005
  2. สร้างโครงการ Visual c# Windows Application ใหม่ชื่อ PoolDemo
  3. ใช้กล่องเครื่องมือที่เพิ่มคำปุ่มควบคุมไปยังแบบฟอร์ม ชื่อเริ่มต้นสำหรับการปุ่มตัวควบคุมเป็น button1
  4. คลิกขวาที่รูปแบบ และจากนั้น คลิกรหัสของมุมมอง.
  5. วางต่อไปนี้การใช้directive หลังจากที่มีอยู่การใช้directives แต่ก่อนที่ จะประกาศของPoolDemonamespace:
    using System.Threading;
    					
  6. สลับกลับไปยังมุมมองออกแบบ และจากนั้น คลิกสองครั้งbutton1. วางรหัสต่อไปนี้ในการbutton1_Clickตัวจัดการเหตุการณ์:
    private void button1_Click(object sender, System.EventArgs e)
    {
    	WaitCallback wcb = new WaitCallback(GetSysDirSize);
    	try
    	{
    		ThreadPool.QueueUserWorkItem(wcb);
    		MessageBox.Show("The work item has been placed on the queue");
    	}
    	catch (Exception ex)
    	{
    		MessageBox.Show("Error: " + ex.Message);
    	}
    }
    					
  7. วางรหัสต่อไปนี้ภายในเนื้อความของform1คลาสที่ กระบวนการGetSysDirSizeวิธีคำนวณจำนวนไบต์ที่เก็บอยู่ในไดเรกทอรีระบบGetSysDirSizeเรียกวิธีการตั้งชื่ออื่นDirSizeการดำเนินการคำนวณ

    หมายเหตุ:: งานนี้อาจมีบางครั้งจะเรียกใช้
    private void GetSysDirSize(object state)
    {
    	long total_length = DirSize(Environment.SystemDirectory);
    	this.Text = total_length.ToString();
    }
    
    private long DirSize(string path)
    {
    	long sz = 0;
    	System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(path);
    	
    	// List files.
    	foreach(System.IO.FileInfo f in d.GetFiles())
    	{
    		sz += f.Length;
    	}
    
    	// Recurse into directories.
    	foreach(System.IO.DirectoryInfo dx in d.GetDirectories())
    	{
    		sz += DirSize(dx.FullName);
    	}
    
    	return sz;
    }
    					

ตัวอย่างในการทดสอบ

  1. กด CTRL + F5 เพื่อเรียกใช้โปรแกรมประยุกต์
  2. เมื่อปรากฏขึ้นในแบบฟอร์ม คลิกปุ่ม เมื่อการวางรายการงานได้ลงในคิวกล่องข้อความปรากฏ คลิกตกลงเมื่อต้องการยกเลิกกล่องข้อความ และกลับไปยังฟอร์มหลัก หลังจากการหน่วงเวลาที่สั้น ขนาดแฟ้มทั้งหมดในไดเรกทอรีระบบจะแสดงในป้ายคำอธิบายของแบบฟอร์ม ความยาวของการหน่วงเวลาขึ้นอยู่กับความเร็วของคอมพิวเตอร์ของคุณและจำนวนของแฟ้มในไดเรกทอรีระบบ การคำนวณขนาดของแฟ้มเกิดขึ้นบนเธรดในพูเธรด

คุณสมบัติ

หมายเลขบทความ (Article ID): 315460 - รีวิวครั้งสุดท้าย: 19 ตุลาคม 2553 - Revision: 1.0
ใช้กับ
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbhowtomaster kbsample kbthread kbmt KB315460 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:315460

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com