2009-12-29 21 views
8

Tôi muốn tạo một chuỗi trong C sao cho chuỗi sẽ tự động gọi sau hai giây. Tôi đang sử dụng nền tảng Visual Studio và Windows để phát triển.Luồng trong C

Làm cách nào để bắt đầu?

+2

nền tảng gì? Và ý bạn là gì, "tự động gọi"? Chuỗi có nên tự động gọi một hàm sau một thời gian chờ hai giây không? Bạn có cần điều này để được một thread riêng biệt, hoặc sẽ là một bộ đếm thời gian trong cùng một thread là đủ? Hãy thử cụ thể hơn một chút trong câu hỏi của bạn. –

+0

Tôi đang sử dụng studio trực quan 2008 và nền tảng cửa sổ để phát triển. Và tự động gọi có nghĩa là tôi muốn đệ quy gọi chủ đề sau mỗi 2 giây, giống như hàm NSTimer trong mục tiêu c. – Siddiqui

Trả lời

17

Bạn sẽ cần sử dụng thư viện dành riêng cho hệ điều hành để thực hiện luồng. Trên Posix, bạn sẽ muốn xem xét pthreads (và cụ thể là pthread_create). Trên Windows, bạn sẽ muốn CreateThread hoặc _ beginthreadex.

+1

Chuẩn C mới, C11 bao gồm [hỗ trợ đa luồng] (http://en.cppreference.com/w/c/thread) –

2

Không có gì trong tiêu chuẩn C có thể giúp bạn. Bạn cần sử dụng một số tính năng thư viện hoặc nền tảng phụ thuộc. Đừng quên rằng nhiều nền tảng chỉ đơn giản là không có chủ đề - chỉ có quá trình trọng lượng đầy đủ.

Khi sử dụng Windows CreateThread(). Bạn sẽ cần Microsoft SDK để biên dịch mã của bạn bằng cách sử dụng chức năng này và các chức năng Win32 khác.

+0

Vui lòng cho tôi biết một số thư viện có thể làm cho nó có thể. – Siddiqui

+0

Tôi đề nghị bạn chỉ định các yêu cầu nền tảng đích trước tiên - tôi có thể nói một thư viện không phù hợp với nền tảng bạn quan tâm. – sharptooth

+0

Vui lòng cho chúng tôi biết nền tảng của bạn, Arman ... Trên Unix, bạn thường sử dụng thư viện POSIX pthread; trên Windows, bạn sử dụng API luồng gốc của Windows. –

2

C không có sẵn tiện ích luồng; bạn sẽ phải sử dụng các dịch vụ hệ điều hành của mình để tạo một chuỗi.

Đối với cửa sổ, hãy sử dụng chức năng CreateThread.

+0

Làm thế nào để tạo chuỗi trong hệ điều hành cửa sổ? – Siddiqui