كيف يمكنني ضبط الوقت من مأخذ.ربط() الدعوة ؟ [مكررة]

StackOverflow https://stackoverflow.com/questions/456891

  •  19-08-2019
  •  | 
  •  

سؤال

هذا السؤال سبق الجواب هنا:

لدي التطبيق الذي يربط المضيف الذي قد يكون في الأسفل.إذا كان المضيف هو أسفل أنا لا أريد أن انتظر 30 ثانية أو نحو ذلك يستغرق وقتا.أنا باستخدام حجب مآخذ في هذه اللحظة.

لقد كنت أبحث في المقبس.استطلاع() ومأخذ.حدد() ولكن أنا أفضل أن يكون مجرد إعداد الوقت على مأخذ التوصيل.أنا لا أمانع إذا كان هذا الإعداد يجب أن تفعل في مكان ما في النظام.كما لا يبدو أن نفهم أن الاستطلاع واختر لا تعمل مع اتصال الموجهة الاتصالات هل هذا صحيح ؟

إذا كان هذا هو المستحيل تماما ما هي طريقة لطيفة للحصول على نتائج أريد باستخدام الاستطلاع ، حدد أو تقنية ؟

هل كانت مفيدة؟

المحلول

انظر BeginConnect و البرمجة غير المتزامنة نظرة عامة

IAsyncResult asr = socket.BeginConnect( ip, port, null, null );

bool res = asr.AsyncWaitHandle.WaitOne( 10000, true );  // 10 sec timeout

تحديث:هناك مثال أفضل هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top