2012-12-14 58 views
6

Cho đến nay tôi đã cố gắng làm chủ luồng bằng cách thực hiện ngay các chủ đề trong dự án của tôi. Và tôi đã cố gắng làm điều đó trong một thời gian dài. Nhưng điều này đã không dẫn đến bất kỳ kết quả nào, cũng như không cho tôi bất kỳ trải nghiệm nào về luồng. Điều duy nhất mà những nỗ lực đã cho tôi là ấn tượng rằng luồng trong C# có nhiều cải tiến quan trọng.C# Luồng: Các bài tập cho người mới bắt đầu

Tôi không thể tìm thấy bất kỳ bài tập đơn giản nào về luồng. Tôi đang tìm kiếm các bài tập mà bạn phải thực hiện các ứng dụng giao diện điều khiển đơn giản khác nhau. Tôi đang tìm kiếm các bài tập đơn giản để tôi có thể có được một ý tưởng về cách mọi thứ hoạt động khi làm việc với các chủ đề và nắm vững ý tưởng đó. Tôi đã thấy một cuốn sách các bài tập lập trình với khó khăn trở nên khó khăn hơn khi số của bài toán trở nên lớn hơn. Tôi đang tìm kiếm một cái gì đó tương tự. Sau đó tôi sẽ tiếp tục với các công cụ phức tạp hơn và cố gắng thêm các chủ đề trong dự án của tôi (được tạo bằng Windows Forms).

Tôi có thể tìm các bài tập/sách bài tập về luồng trong C# ở đâu?

EDIT:

Tôi KHÔNG tìm kiếm bất kỳ hướng dẫn nào- tôi có thể tự tìm thấy chúng. Tôi chỉ đang tìm kiếm các bài tập và bài tập. Nếu không có bài tập như vậy, xin vui lòng, cho tôi biết.

+0

Check-out cuốn sách Visual C# 2012 nó bìa tải về luồng và nhiệm vụ nhà máy – cpoDesign

+0

Một điều thứ khó nhận ra là luồng không cải thiện hiệu suất của hầu hết các ứng dụng. Hãy chắc chắn rằng bạn cần nó trước khi bạn sử dụng nó. –

+0

Tôi chắc chắn rằng tôi cần nó. – AlexSavAlexandrov

Trả lời

7

bài tập đơn giản:

1) thay đổi mã mà làm việc (tìm hiểu bằng ví dụ)

  • mở bất kỳ hướng dẫn
  • tìm mã mẫu
  • chơi với cá tuyết mẫu e, xem những gì làm việc và những gì không

câu hỏi 2) câu trả lời trên SO (tìm hiểu bằng cách giảng dạy)

  • tìm một câu hỏi thú vị
  • câu trả lời nó (bạn nên làm một nghiên cứu để làm này)
  • nói chuyện và tương tác với những người dùng khác
+0

Ý tưởng hay. Cảm ơn bạn! – AlexSavAlexandrov

0

Luồng khá thẳng về phía trước. Dưới đây là một liên kết phổ biến liên quan đến nó: http://www.albahari.com/threading/

Khái niệm cơ bản:

Tạo một phương thức trả về void và không có đối số. Như thế này:

private void MyThreadMethod() 
{ 
    //Some code here. 
} 

Để gọi phương thức đó trong một luồng chỉ cần làm điều này trong một nút trên biểu mẫu.

var thread = new Thread(new ThreadStart(MyThreadMethod)); 
thread.Start(); 

Điều đó sẽ tạo một chuỗi và khởi chạy và chạy mã trong MyThreadMethod.

Bây giờ, ma quỷ ở trong các chi tiết. Chủ đề an toàn và quản lý các chủ đề là nơi mà nghệ thuật thực sự của luồng và đa nhiệm là. Một điều cần xem xét là Chủ đề vs Nhiệm vụ thân thiện với người dùng hơn nhiều.

+0

Và đó là lý do tại sao tôi cần bài tập: để nắm vững kiến ​​thức - tôi không thể thực hiện nó ngay lập tức trong dự án của mình. – AlexSavAlexandrov

+0

Truy cập liên kết ở đầu bài đăng của tôi. Nó có một vài cấp độ hướng dẫn. Tôi thực sự nghĩ rằng nó sẽ cung cấp cho bạn những gì bạn cần. – jmrnet

+0

Tôi cần các bài tập, không phải hướng dẫn, mà tôi có thể biến kiến ​​thức thành kỹ năng. – AlexSavAlexandrov

4

Joseph Albahari có một bài viết tuyệt vời được gọi là Threading in C#. Đây là bài đăng blog thực sự thú vị về việc bắt đầu tìm hiểu về luồng trong C#. Joseph giải thích rõ ràng:

  • Giới thiệu và khái niệm
  • Tham gia và Ngủ
  • Làm thế nào Threading trình
  • Tạo và Bắt đầu Chủ đề
  • sợi tổng hợp

Và kiểm tra this tra bài viết từ CodeProject .

  • Bắt đầu

Bạn có thể tạo và bắt đầu một chủ đề mới bởi instantiating một đối tượng Thread và gọi phương pháp Bắt đầu của nó.Phương thức khởi tạo đơn giản nhất cho Thread lấy một số ThreadStart delegate: một phương thức không tham số chỉ ra nơi thực thi sẽ bắt đầu.

using System; 
using System.Threading; 

class ThreadTest 
{ 
    static void Main() 
    { 
     Thread t = new Thread (WriteY); // Kick off a new thread 
     t.Start(); // running WriteY() 
     // Simultaneously, do something on the main thread. 
     for (int i = 0; i < 1000; i++) Console.Write ("x"); 
    } 
    static void WriteY() 
    { 
     for (int i = 0; i < 1000; i++) Console.Write ("y"); 
     } 
} 

// Output: 
xxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy 
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxx 
xxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 
yyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
... 

Nếu bạn muốn tìm hiểu luồng sâu sắc nhận được một bản sao của C# 4.0 in a Nutshell

+0

Hướng dẫn về hai thanh tiến trình rất đẹp. Nhưng câu trả lời của bạn vẫn không trả lời được câu hỏi của tôi. – AlexSavAlexandrov

Các vấn đề liên quan