دالات مكتبة وقت التشغيل C للتحكم في مؤشر الترابط
لدى كافة البرامج Win32 مؤشر ترابط واحد على الأقل. يمكن لأي مؤشر ترابط إنشاء مؤشرات ترابط إضافية . مؤشر الترابط يمكنه إكمال العمل الخاص به بسرعة ثم الإنهاء أو يمكن أن يظل نشطاً طيلة حياة البرنامج.
توفر مكتبات وقت التشغيل LIBCMT وC MSVCRT الدالات التالية لإنشاء مؤشر ترابط و إنهائه: _beginthread _beginthreadex و_endthread _endthreadex
الدالات _beginthread و _beginthreadex تنشئ مؤشر ترابط جديد و تعيد معرف مؤشر ترابط إذا نجحت العملية. ينتهي مؤشر الترابط تلقائياً في حالة إكمال التنفيذ أو يمكنه إنهاء نفسه باستدعاء _endthread أو _endthreadex.
ملاحظة
إذا كنت تنوي استدعاء إجراءات وقت التشغيل C من برنامج مبني بـ Libcmt.lib ، يجب عليك بدء تشغيل مؤشرات الترابط الخاصة بك بالدالة _beginthread أو _beginthreadex . لا تستخدم دوال Win32 ExitThread و CreateThread. استخدام SuspendThread يمكن أن يؤدي إلى حالة توقف تام عند إيقاف أكثر من مؤشر ترابط في انتظار توقف مؤشر الترابط المعلق ليكمل الوصول إلى بنية بيانات وقت تشغيل C.
دوال _beginthread و _beginthreadex
الدالات _beginthread و _beginthreadex تنشئ مؤشر ترابط جديد . مؤشر الترابط يشارك التعليمات البرمجية و البيانات لعملية مع مؤشرات أخرى في العملية ولكن لها قيم سجل، و مساحة مكدس و عنوان للتعليمات الحالية فريدة خاصة بها. يوفر النظام لكل مؤشر ترابط وقتاً من الـ CPU ، بحيث يمكن تنفيذ كافة مؤشرات الترابط في عملية بشكل متزامن.
_beginthread و**_beginthreadex** مشابهة لدالة CreateThread في Win32 API ولكن لديهم هذه الاختلافات:
تقومان بتهيئة متغيرات مكتبة وقت تشغيل C معينة. هذا مهم فقط إذا كنت تستخدم مكتبة وقت تشغيل C في مؤشرات الترابط الخاصة بك.
CreateThread يساعد على توفير التحكم لسمات الأمان. يمكنك استخدام هذه الدالة لبدء تشغيل مؤشر ترابط في حالة توقف مرحلي.
_beginthread و**_beginthreadex** تقومان بإرجاع مؤشر(handle) إلى مؤشر الترابط الجديد في حالة النجاح أو رمز خطأ إذا كان هناك خطأ.
دوال _endthread و _endthreadex
الدالة _endthread تقوم بإنهاء مؤشر الترابط الذي تم إنشاؤه بواسطة _beginthread (و بالمثل، _endthreadex تقوم بإنهاء مؤشر الترابط الذي تم إنشاؤه بواسطة _beginthreadex). ينهي عمليات جزئية تلقائياً عندما تنتهي. _endthreadو**_endthreadex**مفيدة لإنهاء الشرطي من خلال مسار التنفيذ. مؤشر الترابط المخصص لمعالجة الاتصالات، على سبيل المثال، يمكنه الإنهاء إذا تعذر الحصول على التحكم في منفذ الاتصالات.