damanpak
سه شنبه 08 مهر 1393, 02:18 صبح
سلام به اساتید
دوستان فرض کنید میخوام قبل از ارسال یک سری اطلاعات به وب سرویس چک کنم که آیا
ارتباط با وب سرویس برقراره یا خیر در حالتی که ارتباط برقرار باشه در عرض مثلا 3 ثانیه و یا
کمتر از وب سرویس جواب میگیرم و درحالتی که ارتباط قطع باشه ممکنه 10 تا 15 ثانیه برنامه ام
منتظر جواب از وب سرویس باشه
واسه این کار قطعه کدی با استفاده از نخ نوشتم به این شرح
Dim StartSecound As Integer = 1,XthreadConnection as Thread
Dim InputBoolean as Boolean=True
XthreadConnection = New Threading.Thread(Sub()
TestConnection()
End Sub)
XthreadConnection.Start()
While XthreadConnection.IsAlive And StartSecound < 25000000
StartSecound += 1
If StartSecound >= 25000000 Then InputBoolean = False
End While
XthreadConnection.Abort()
Return InputBoolean
زمانی که StartSecound = 25000000 یعنی برنامه مدت 4 ثانیه رو منتظر جواب بوده و اگه به این مقدار برسه برنامه از حقه خارج میشه و میره خط بعدی
اما وقتی به خط XthreadConnection.Abort() میرسم برنامه مدت طولانی رو رو این خط میمونه در صورتی که من جهت جلوگیری از انتظار طولانی کاربر از نخ استفاده کزدم.ضمنا این تابع قبل از هر بار ارسال داده ها باید چک بشه
حال چه راه حلی واسه اینکه برنامه فقط مدت مثلا 3 ثانیه متظر جواب از وب سرویس باشه رو پیشنهاد میدین؟
دوستان فرض کنید میخوام قبل از ارسال یک سری اطلاعات به وب سرویس چک کنم که آیا
ارتباط با وب سرویس برقراره یا خیر در حالتی که ارتباط برقرار باشه در عرض مثلا 3 ثانیه و یا
کمتر از وب سرویس جواب میگیرم و درحالتی که ارتباط قطع باشه ممکنه 10 تا 15 ثانیه برنامه ام
منتظر جواب از وب سرویس باشه
واسه این کار قطعه کدی با استفاده از نخ نوشتم به این شرح
Dim StartSecound As Integer = 1,XthreadConnection as Thread
Dim InputBoolean as Boolean=True
XthreadConnection = New Threading.Thread(Sub()
TestConnection()
End Sub)
XthreadConnection.Start()
While XthreadConnection.IsAlive And StartSecound < 25000000
StartSecound += 1
If StartSecound >= 25000000 Then InputBoolean = False
End While
XthreadConnection.Abort()
Return InputBoolean
زمانی که StartSecound = 25000000 یعنی برنامه مدت 4 ثانیه رو منتظر جواب بوده و اگه به این مقدار برسه برنامه از حقه خارج میشه و میره خط بعدی
اما وقتی به خط XthreadConnection.Abort() میرسم برنامه مدت طولانی رو رو این خط میمونه در صورتی که من جهت جلوگیری از انتظار طولانی کاربر از نخ استفاده کزدم.ضمنا این تابع قبل از هر بار ارسال داده ها باید چک بشه
حال چه راه حلی واسه اینکه برنامه فقط مدت مثلا 3 ثانیه متظر جواب از وب سرویس باشه رو پیشنهاد میدین؟