שימוש בasync

שיווקי

New member
שימוש בasync

שלום,

בעבודה ב-C# בפונקציות async - מה היתרונות ומה החסרונות של עבודה בשיטה זו?
האם יש בעיה של זליגת זיכרון וכו'?
מתי אעדיף לא להשתמש בפקודות async ומתי כן?

תודה.
 

nocgod

New member
יתרונות חסרונות

יתרון - אתה משחרר את ה thread במקום לתקוע אותו על IO, עם תיכנון נכון וטוב אתה יכול להגיד את ה throughput של הקוד שלך
חיסרון - סכנה לdeadlocks, סכנה לresource exhaustion אם אתה לא יודע מה אתה עושה...

בעיה של דליפת זיכרון... הכל תלוי בקוד שלך חביבי, תכתוב קוד לא טוב, ידלוף.

מתי עדיף? מתי שאתה יודע שכל הcall stack שלך יכול להתנהג בצורה הזאת, אחרת קשה מאוד לכתוב קוד סינכרוני בתוך קוד אסינכרוני.

כל מה מה שאמרתי כיתרון, אפשר כהרף עין להפוך לחיסרון כשעובדים לא נכון, וכל דבר שאמרתי שקשה הופך לקל ברגע שאתה יודע מה אתה עושה.

אני חושב שהדבר הכי חשוב לקחת מהתגובה: לפני שאתה נכנס ל TPL בכללי ולasync/await Tasks בפרט - כדאי מאוד לדעת מה אתה עושה ולהבין את הנושא.
 

Royi Namir

New member
עוד

ASYNC יכול להיות בשימוש גם ללא IO אלא גם על CPU OPERATIONS -
רק אם כמובן יש לך המשכיות

חסרונות - יהקוד שלך מן הסתם יעבוד יותר לאט (עקב הרבה סטייט משין - אבל יוכל לשרת יותר לקוחות).
שוב , לא צריך בכח להכניס כל דבר
אבל ....
 
למעלה