رفتن به مطلب
  • 0

ایجاد تاخیر زمانی در اجرای فانکشن ها (ساب)


AdultWolf

سوال

سلام

من چندین ساب دارم هر ساب من به زمان نامشخصی نیازه داره تا کارش بدرستی انجام بده

حالا مشکل من اینکه من خروجی این ساب ها را میخوام ارسال کنم به جایی ولی مشکل اینکه خروجی من اماده نشده !

من از اسلیپ کمک گرفتم ولی نتیجه بخش نبود تو هر گوشی زمان پروسه نامشخص بود.

میدونم دستور Wait For هست و لی اصلا این دستور درک نکردم

لطفا کمک کنید من برای اینکه بتونم صبر کنم تا خروجی هر ساب بگیرم و عملیات اخرم روی ساب ها انجام بدم چیکار باید بکنم.

 

مثلا در این ساب من لیست فایل هارو میگیرم چند ساب این مدلی دارم.

Sub Files(Dir As String) As List 
 Dim l,l2 As List : l.Initialize 
 l2 = File.ListFiles(Dir) 
 For i = 0 To l2.Size - 1 
  Dim fn,fa As String 
  fn = l2.Get(i) 
  fa = File.Combine(Dir,fn) 
  If File.IsDirectory(Dir,fn) Then 
   l.AddAll(Files(fa)) 
  else if fn.ToLowerCase.EndsWith(".pgk") Then 
   l.Add(fa) 
  End If 
 Next
File.WriteString(File.DirDefaultExternal,"allfile.txt",fa)
Return l
End Sub

 

 

حالا بایک ساب دیگه میخوام خروجی این کپی کنم جایی دیگر

Sub Copy
i = File.OpenInput(File.DirDefaultExternal,"allfile.txt.JPG")
o = File.OpenOutput(File.DirDefaultExternal,"allfile2222.txt",False)
   If File.ExternalWritable = True Then
       File.Copy2(i,o)
       Msgbox("Copy Successfully!","")
       Else
       Msgbox("Err","")
       End If
End Sub

مشکل اینکه ساب یک هنوز  کارش تموم نشده میره ساب دو ! و عملیات ناقص میشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال های توصیه شده

در هم اکنون، AdultWolf گفته است :

سلام

من چندین ساب دارم هر ساب من به زمان نامشخصی نیازه داره تا کارش بدرستی انجام بده

حالا مشکل من اینکه من خروجی این ساب ها را میخوام ارسال کنم به جایی ولی مشکل اینکه خروجی من اماده نشده !

من از اسلیپ کمک گرفتم ولی نتیجه بخش نبود تو هر گوشی زمان پروسه نامشخص بود.

میدونم دستور Wait For هست و لی اصلا این دستور درک نکردم

لطفا کمک کنید من برای اینکه بتونم صبر کنم تا خروجی هر ساب بگیرم و عملیات اخرم روی ساب ها انجام بدم چیکار باید بکنم.

مثلا در این ساب من لیست فایل هارو میگیرم چند ساب این مدلی دارم.

حالا بایک ساب دیگه میخوام خروجی این کپی کنم جایی دیگر

مشکل اینکه ساب یک هنوز  کارش تموم نشده میره ساب دو ! و عملیات ناقص میشه.

برای اینجور کارهایی بهتره از asynctask استفاده کنید. از کتابخونه زیر کمک بگیرید

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 32 دقیقه قبل، محمدرضا شاهپیری گفته است :

برای اینجور کارهایی بهتره از asynctask استفاده کنید. از کتابخونه زیر کمک بگیرید

 

 

ممنون از شما این کتابخونه خوبیه، ولی من مشکلم اینکه ساب اول تموم نشده میره ساب دوم من میخوام تا ساب اول تموم نشده نره ساب دوم مثل دستور for i که برنامه استاپ میشه تا از حلقه بیرون بیاد.

یعنی با دستور Wait For نمیشه ساب چک کرد ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 13 ساعت قبل، AdultWolf گفته است :

 

ممنون از شما این کتابخونه خوبیه، ولی من مشکلم اینکه ساب اول تموم نشده میره ساب دوم من میخوام تا ساب اول تموم نشده نره ساب دوم مثل دستور for i که برنامه استاپ میشه تا از حلقه بیرون بیاد.

یعنی با دستور Wait For نمیشه ساب چک کرد ؟

خب این کتابخونه کارش همینه دیگه. یکی از سابهاتونو توی doinBackground بزارین ساب دومی هم توی onPostExecuted بزارید. اینها به ترتیب اجرا میشه

 

در 13 ساعت قبل، AdultWolf گفته است :

یعنی با دستور Wait For نمیشه ساب چک کرد ؟

خیر دوست عزیز این دستور برای منتظر موندن برای ایونت هست نه ساب.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...