לגלישה באתר בגירסה המותאמת לסלולאר
| הוספת הודעה
הגדרות תצוגה

הגדרות עץ הודעות

מאפייני צפייה

הצג טקסט בתצוגה
הצג תגובות באופן
עדכן

פורום תכנות net.

בשנת 2002 השיקה מיקרוסופט טכנולוגיה חדשה, NET. היה חוסר במקום בו ניתן לשאול שאלות בנושא NET. בארץ, ולכן הוחלט לפתוח את פורום זה. 
פורום NET. (שנחשב כיום לפורום המוביל בארץ) הוא המקום בו יכולים מפתחים לשאול שאלות ולנהל דיונים בנושאים שונים.  לפני ששואלים בפעם הראשונה, יש לקרוא את תקנון הפורום.
 
 
 

הנהלת הפורום:

אודות הפורום תכנות net.

בשנת 2002 השיקה מיקרוסופט טכנולוגיה חדשה, NET. היה חוסר במקום בו ניתן לשאול שאלות בנושא NET. בארץ, ולכן הוחלט לפתוח את פורום זה. 
פורום NET. (שנחשב כיום לפורום המוביל בארץ) הוא המקום בו יכולים מפתחים לשאול שאלות ולנהל דיונים בנושאים שונים.  לפני ששואלים בפעם הראשונה, יש לקרוא את תקנון הפורום.
 
 
 
הוספת הודעה

צרף
תמונה וידיאו קובץ
קבצים המצורפים להודעה

לצפיה ב-'שפת C נגזרת '
שפת C נגזרת
17/05/2017 | 20:15
21
היי ת קיבלתי את התרגיל הבא :
נגזרת של פונקציה f בנקודה x0 היא שיפוע המשיק לגרף הפונקציה בנקודה (x0, f(x0))   ולכן נגזרת שווה לטנגנס זווית שיוצר המשיק עם הכיוון החיובי של ציר ה-x. משמעות הנגזרת היא קצב השתנות של פונקציה בנקודה.
ניתן לכתוב זאת באופן הבא: פה מופיעה הנוסחה של של חישוב נגזרת לפי LIM .

כתבו תוכנית המחשבת נגזרת עבור הפונקציה f(x) = x3 -8x2 +3x-5.
התוכנית הראשית תבקש ותקבל מהמשתמש
שני נתונים: x0 ו dx.
תכננו באיזו פונקציה להיעזר, ונמקו את החלטתכם.
לנוחותכם: הרי גרף הפונקציה והנגזרת:
חשבו את ערך הנגזרת בנקודות הבאות....
 
צירפתי גם את הקובץ WORD  של המעבדה הזו מדובר בתרגיל 5.
אין לי ככ רעיון למה לעשות בקוד כדי לחשב את הנגזרת. חשבתי אולי להציב את ה X0 ו DX בנוסחה ואז מה שמתקבל זה הגבול. לא סגורה לגבי זה . צריכה רעיונות לאיך אפשר לעשות את זה בבקשה בשפת C.
 













 
לצפיה ב-' פורומים נפתחים מחדש '
פורומים נפתחים מחדש
( לעמוד שלי בתפוז )
15/05/2017 | 12:31
8
  סובלים מכאב כרוני ואין לכם את מי לשתף?
פורום כאב עצבי וכאב כרוני נפתח מחדש על מנת לדבר על ההתמודדות ולקבל תמיכה אחד מהשני!
 
 צריכים ייעוץ לגבי זכויות יוצרים או מפתחים מוצר חדש?
פורום קניין רוחני ופטנטים נפתח מחדש לכל היזמים שבנינו, היכנסו ושאלו את המומחה!
 
המשך גלישה נעימה
לצפיה ב-'איך אני מפעיל פעולה פעם אחת בלבד ביום'
איך אני מפעיל פעולה פעם אחת בלבד ביום
06/05/2017 | 14:00
6
44
אני משתמש ב- asp.net ו- #c
לצפיה ב-'*חובש את הכובע הטלפטי*'
*חובש את הכובע הטלפטי*
07/05/2017 | 08:12
2
39
לצפיה ב-'אבל אני משתמש ב- asp.net'
אבל אני משתמש ב- asp.net
07/05/2017 | 18:49
1
22
לצפיה ב-'אני לא יודע לנחש מה אתה צריך'
אני לא יודע לנחש מה אתה צריך
09/05/2017 | 21:06
25
בוא תבין מה אתה צריך, תרכיב שאלה שתגיד לכל אנשי הפורום מה אתה צריך ומשם נמשיך.
אני לא מבין מה אתה רוצה לבצע, מה קשור asp.net ולאיזו מטרה אתה רוצה לבצע את הפעולה הזאת. ישנן מגווה דרכים לבצע תזמון משימות:
שירות וינדוס שכל הזמן דלוק ובשעה מסויימת מריץ קוד.
מתזמן משימות וינדוס שמריץ תוכנה זו או אחרת בשעה מוגדרת.
להשתמש ב quartz.net כדי לתזמן הרצת קוד בתוך process רץ.
לצפיה ב-'Hangfire'
Hangfire
15/05/2017 | 00:10
2
23
כמו שnocgod אמר כדאי שתפרט יותר מה בדיוק אתה צריך, אבל הואיל והוא נתן לך כמה אפשרויות, אוסיף עוד אחת:
 
לצפיה ב-'נראה חמוד'
נראה חמוד
16/05/2017 | 18:26
7
ננסה את זה.
לצפיה ב-'שיחקתי בו קצת יותר'
שיחקתי בו קצת יותר
18/05/2017 | 01:33
8
אני מאוד נהנה ממנו. אני מתחיל להשתמש בו באופן קבוע להריץ ג'ובים על השרתים שלי.
אגב, הוא עובד חלק על שרתי azure ו azure sql.
לצפיה ב-'SSL JSON - C# TO VB.NET'
SSL JSON - C# TO VB.NET
30/04/2017 | 15:23
28
היי,
יש לי קוד ב C# שאמור לחבר אותי דרך SSL .
אני כבר 3 ימים מנסה לכתוב את אותו קוד ב vb.net
ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;
           
var response = client.PostAsync("GetRequestOperation", new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"));
response.Result.EnsureSuccessStatusCode();
var data = response.Result.Content.ReadAsStringAsync();
var jObj = JObject.Parse(data.Result);

אשמח לקבל עזרה בהמרה...
לצפיה ב-'איך אני מעדכן קובץ'
איך אני מעדכן קובץ
25/04/2017 | 06:04
2
82
XML אוטומטית פעם ביום
לצפיה ב-'קובץ XML מוכב מתגים, עדיף לעדכן את כל הקובץ'
קובץ XML מוכב מתגים, עדיף לעדכן את כל הקובץ
25/04/2017 | 12:06
35
להכנס לתוך הקובץ ולשנות חלקים בדידים מתוכו עלול להרוס את המבנה\פורמט של XML ולהפוך את הקובץ להיות בלתי-קריא
 
אם יש לך שאלות, אשמח אם תוכל להיות קצת יותר ספציפי מאשר בשאלה המקורית
 
בברכה,
זיו
לצפיה ב-'לפעמים תנסה לקרוא את השאלה שאתה שואל '
לפעמים תנסה לקרוא את השאלה שאתה שואל
25/04/2017 | 16:35
36
ותחשוב האם לך זה היה מובן
לצפיה ב-'לוח מערכת שעות שבועי בWinforms'
לוח מערכת שעות שבועי בWinforms
21/04/2017 | 22:17
2
31
שלום חברים. במסגרת קורס בתואר, אני עושה פרויקט של מערכת לניהול מערכת שעות. דרוש לי מערכת שעות שתוצג בצורה שבועית ושעתית. כלומר עמודות של ימים ושורות של שעות כמו מערכת שעות סטדנרטית, שתשלוף נתונים מאוחר יותר מתוך מסד נתונים.
 
יש למישהו רעיון איך לבנות דבר כזה? באיזה פקדים להשתמש?
מצאתי כל מיני דברים מוכנים בגוגל. אבל מאוד ישנים ויש לומר גם מכוערים. הייתי שמח לבנות משהו כזה בעצמי, רק צריך הכוונה.
 
הפרויקט נכתב בשפת c# בעיצוב של Windows forms.
לצפיה ב-'מה אתה רוצה להשיג?'
מה אתה רוצה להשיג?
25/04/2017 | 14:09
1
21
1. אם המטרה היא לימודית ואתה מעוניין לצבור ידע ב UI - לבנות משהו ב WINFORMS זה טעות. זו שפה מתה, ללא כל שימוש בפרדיגמות שנפוצות היום בשפות UI חדשות (אנגולר\WPF\מובייל) והידע שתצבור לא יואיל לך בהמשך.
 
2. במידה וזה המצב ואתה נדרש לבנות את זה רק ב WINFORMS - הכל שאלה של כמה מודולרי אתה צריך שהפקד שלך יהיה. יש כמות קבועה של שעות ? (כל שיעור הוא חצי שעה ? הפסקה תמיד במקום הקבוע, וכו') או שהכל דינמי ?
בסופו של דבר אתה יכול להשתמש באיזה פקד גריד כלשהו, אבל שידרוש הרבה התאמות למה שאתה מנסה להשיג, או לחילופין ליצור בצורה דינמית (או סטטית) פקדי טקסט שירכיבו את המערכת שעות...
 
 
לצפיה ב-'הקורס נלמד במסגרת התואר'
הקורס נלמד במסגרת התואר
25/04/2017 | 21:23
17
זה קורס במסגרת התואר שלי שנקרא "ניהול פרויקט תוכנה", אנחנו בונים ביחד תוכנה בקבוצה. הדרישות הן בWinforms אפילו שזו כבר טכנולוגיה ישנה ומתה. כי הרעיון בקורס הזה הוא פחות ללמוד תכנות ויותר ללמוד איך לנהל פרויקט.
 
בסופו של דבר החלק העיקרי זה להציג מערכת שעות שבועית (timetable) שמסודרת בשורות של שעות ובעמודות של ימים בשבוע. אין דרישה אם זה יהיה כל חצי שעה או כל שעה, וזה גם לא כל כך משנה.
לצפיה ב-'עזרה בתרגום מונחים מתחום עיבוד הנתונים הממוחשב'
עזרה בתרגום מונחים מתחום עיבוד הנתונים הממוחשב
17/04/2017 | 12:24
1
35
איך הייתם מתרגמים לעברית את
Create Replication Document Outbound Metadata
האם התרגום
צור מטא-נתונים יוצאים של מסמך שכפול
מעביר לדעתכם את המסר?
תודה
לצפיה ב-'ועוד שאלה: inherited'
ועוד שאלה: inherited
17/04/2017 | 14:20
25
מהם המונחים שמשתמשים בהם בעברית לנושאים של 'ירושה' - inherited כמו בטקסט הבא או זה שאחריו:
 
Warning: this action will unshare collections with the base form.  Future changes to collections on base forms may require manual changes to inherited forms in order to work correctly.  Do you want to continue?
 
View Attributes Inherited From Property
 
האם טקסטים מקצועיים בתחום זה משתמשים במילה ירושה או לרשת?
לצפיה ב-'איך אני מוצא את שם העיר בה אני נמצא עכשיו'
איך אני מוצא את שם העיר בה אני נמצא עכשיו
14/04/2017 | 09:46
5
42
c# asp.net
לצפיה ב-'בעיקרון באמצעות חיפוש קצר בגוגל...'
בעיקרון באמצעות חיפוש קצר בגוגל...
14/04/2017 | 23:15
35
אתה יכול למצוא בצד שרת את המיקום באמצעות ip geolocation
או שאתה יכול לבקש מהמשתמש לשתף את המיקום שלו באמצעות ה geolocation API של הדפדפנים.
 
שוב חיפוש בגוגל מביא לך את כל התשובות (לדעת לנסח את השאלה ולחפש אותה בגוגל זה 50% מהדרך לפיתרון)
 
לצפיה ב-'השתמשתי ב- navigator.geolocation'
השתמשתי ב- navigator.geolocation
14/04/2017 | 23:35
3
20
האם זה בסדר ?
לצפיה ב-'אם זה עושה את מה שרצית אז כן...'
אם זה עושה את מה שרצית אז כן...
15/04/2017 | 00:22
2
14
לצפיה ב-'הבעיה היא שהדפדפן מבקש'
הבעיה היא שהדפדפן מבקש
15/04/2017 | 11:26
1
30
אישורים להפעלת ה- JS
האם אפשר לעקוף זאת ?
לצפיה ב-'לא נראה לי שאפשר, זה פונקציונליות של הדפדפן...'
לא נראה לי שאפשר, זה פונקציונליות של הדפדפן...
16/04/2017 | 11:55
22
את גוגל שאלת?
לצפיה ב-'לא מאפשר לי לשלוח הודעה'
לא מאפשר לי לשלוח הודעה
14/04/2017 | 09:44
23
לצפיה ב-' חג שמח מתפוז '
חג שמח מתפוז
( לעמוד שלי בתפוז )
09/04/2017 | 17:01
1
חג פסח שמח וכשר לכולם 
 
בברכה,
תפוז אנשים
לצפיה ב-'כתיבת קוד ב C'
כתיבת קוד ב C
03/04/2017 | 18:49
1
47
היי קיבלתי תרגיל
את התכנית הבאה עליכם לממש ללא שימוש בהוראת  if, אופרטור טרינארי(:?), switch.
כתבו תכנית המבקשת וקולטת 2 מספרים A ו-B
התוכנית מדפיסה 1 אם A מתחלק ב B , או B מתחלק ב A ללא שארית. אחרת יודפס 0. עבור הפלטים הבאים.
כתבתי קוד בויזאול , אין לי מושג אם הקוד הזה הגיוני ,ז"א אם הוא יעשה את מה שמתבקש בתרגיל. הויזאול רושם לי כמה הערות שגויות לגבי הקוד .
להלן הערות: 
Warning    1    warning C4013: 'scanfs' undefined; assuming extern
returning int
Error    2    error C2106: '=' : left operand must be l-value     
בבקשה תעזרו לי עם הפתרון של התרגיל ועם מה עשיתי לא בסדר. (יצאתי מנקודת הנחה שאם הביטוי הוא אמת המחשב יתן 1 ואם הוא שקר הוא יתן 0.
 #include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main(){
int a, b;
double x;
printf("enter two numbers");
scanfs("%d%d", &a, &b);
x = (a / b % 10 = 0 || a / b % 10 = 0);
printf("%lf", x);
getch();
return 0;
}


     
 
לצפיה ב-'לגבי השגיאה'
לגבי השגיאה
05/04/2017 | 19:17
27
את משתמשת ב-= (השמה) במקום == (השוואה).
לגבי הלוגיקה, אם את רוצה לבדוק האם מספר מתחלק באחר ללא שארית, אפשר לעשות עליהם מודולו ולראות אם חזר 0.
למשל:
 int a = 8;
int b = 4;
int r = a % b;

// r == 0? we're good to go.
 
לצפיה ב-'עזרה במונחי תכנות עבור ריאיון עבודה.'
עזרה במונחי תכנות עבור ריאיון עבודה.
26/03/2017 | 15:34
2
64
באחד החברות שאליהן אני אמור להתראיין, נתנו לי למלא באינטרנט טופס פרטים ובו הם שואלים באנגלית על ניסיון שלי בכל מיני תחומים.
אחד התחומים הוא:
SPs, functions
מה זה?
 
 
בנוסף אני אמור לענות בשורה אחת על
Academic Graduation From?
 
האם הם מתכוונים לאיזה תואר עשיתי באוניברסיטה? הציון שבו סיימתי את התואר? קישור לתעודה הרלוונטית שמעידה על התואר שעשיתי?
 
בתודה מראש לכל המסייעים.
 
לצפיה ב-'SP יכול להיות הרבה דברים.. תלוי מה סוג המשרה..'
SP יכול להיות הרבה דברים.. תלוי מה סוג המשרה..
26/03/2017 | 18:16
1
53
אולי Stored Procedures?
 
לגבי השאלה השניה, אני חושב שהכוונה היא מאיפה קיבלת תעודת סיום תואר [מניחים שאולי התחלת לימודים במקום אחד וסיימת במוסד אקדמי אחר]..
לצפיה ב-'תודה רבה!'
תודה רבה!
26/03/2017 | 18:24
17
לצפיה ב-'thread vs async await תהייה לגבי אסינכרוניות ב C#'
thread vs async await תהייה לגבי אסינכרוניות ב C#
21/03/2017 | 13:24
11
108
אני מפתח ב C# מערכת חדשה ותוהה לגבי נקודה שם
אני יודע להשתמש ב thread/threadPoll/ async -await אבל חסר לי סגירה של הנושא.
אני רוצה לפתח ב C# מעבר על רשימה של תיקיות ומחיקה של כל הקבצים בתיקיות האלה שמתחילים באות a (לדוגמא)
אז נניח שיש לי list של נתיבים.
בנוסף, אני רוצה לשלוט על כמות ה THREAD שירוצו
מספר שאלות בנושא
1- הרי כל ה THREAD שרצים , הם ירוצו תחת אותו פרוסס,
אז מה ההבדל במהירות אם ארוץ עם כמה THREAD או שרוץ עם THREAD אחד אבל כאשר אני מוחק קובץ אמחוק בפונקציה שהיא async ועל המחיקה אעשה await ?(ואז בזמן במחיקה ה thread שלי ימשיך לפעולות אחרות?)
אם ארוץ עם כמה THREAD הרי יש contex switch בניהם וזה אומר בזבוז זמן(כלשהו) במעבר בניהם.
 
 
2-
 אם אני עושה קוד כזה
 public static class FileExtensions {
  public static Task DeleteAsync(this FileInfo fi) {
     return Task.Factory.StartNew(() => fi.Delete() );
  }
}

FileInfo fi = new FileInfo(fileName);
await fi.DeleteAsync(); // C# 5
מה זה אומר בפועל?
אני עושה AWAIT על הפעולה deleteAsync אבל בפועל יפתח THREAD (מתוך THREADPOOL ) שיעשה זאת, וידרוש זמן CPU שהוא מחכה.
זה אומר שיהיה לי בסוף בזבוז זמן CPU על המתנה למחיקה , נכון?
לא כמו פעולה async אמיתית שאם אני עושה עליה AWAIT אני נשאר ב THREAD שלי(וממשיך לעבוד על דברים אחרים) ומקבל התראה כאשר הפעולה האסינכרונית נגמרה
 
3-לא ראיתי דרך ב C#  לעשות מחיקת קובץ בצורה אסינכרונית ( שבאמת יהיה אסינכרוני עד ממש ה KERNEL )
תודה רבה!
לצפיה ב-'-->'
-->
21/03/2017 | 15:33
10
55
1. קשה לראות את זה ברמה של מחיקה
בוא נדבר על פעולת IO אחרת
בוא נגיד שבמקום למחוק היית עושה כתיבה של קובץ
אין שום בנפיט אם תפעיל כמה THREADS ביחד
זה סתם יגרום לאיטיות
מצד שני אם זה יהיה SEQUENTIALLY אז לא יהיה לך את ה"בואו כולנו נלך לכתוב ויתהפך העולם"
אותו דבר במחיקה אבל בקטנה
 
את המחיקה עצמה כן הייתי עושה( או לא עושה) עם AWAIT כי זה פעולת IO.
אבל(!) זה לא חוק ברזל. צריך לבדוק את זה. יכול להיות שמשתלם לך לא לעשות את זה ASYNCיש - בגלל שמחיקה היא פעולה מאד מאד קצרה. כמובן שאם חשוב לך מאד  רספונסיביות אז תעשה את זה ASYNCיש.
 
 
 
2. נכון. לא הרווחת כלום ואפילו בזבזת THREAD. וגם החלק השני  נכון.
 
לצפיה ב-'TIL מזל שאמרתי שצריך לבדוק את זה -> הנה הסיבה'
TIL מזל שאמרתי שצריך לבדוק את זה -> הנה הסיבה
21/03/2017 | 16:26
9
46
מסתבר שעבודה ב PARALLEL גם במערכת קבצים ( SSD אצלי לפחות) יותר משתלם לעבוד עם PARALLEL.  ועל כן אני לוקח בחזרה את מה שאמרתי בסעיף 1  - אבל לא את החלק שצריך לבדוק.
 
בחלק הראשון של המבחן הנל אני קורא(!) פרללית ולא פרללית הרבה קבצים
 
ובחלק השני אני כותב(!) פרללית ולא פרללית 1000 קבצים שכל אחד בגודל 100000 בייטים.
 
בשניהם ( ולאחר כמה ניסיונות) התוצאות היו חד משמעית לטובת הפרללי !
כמובן שזה לא מבחן 100% משקף אבל נותן לך פחות או יותר תמונה .
 
הסתכל כאן במבחן : 
 
עכשיו לגבי האם ASYNC יאיץ את זה עוד יותר ? תבדוק ותחזיר תשובה:)
 
 
לצפיה ב-'בדקתי גם את החלק האחרון'
בדקתי גם את החלק האחרון
21/03/2017 | 16:50
8
38
ו ASYNC מאיט את זה
זה הגיוני כי הוא יוצר STATEMACHINE
 
 
 
לצפיה ב-'תגובה'
תגובה
21/03/2017 | 16:55
7
37
א- התמונה-הקישור שבור-אשמח לראות את הקוד שהרצת שאנסה לעשות זאת גם במחיקה
ב- לגבי האם הרווחתי בלעטוף את DELETE ב TASK RUN,  
מה שהבנתי שזה כן מקצה לו THREAD מתוף הTHREADPOOL אבל הTHREAD הזה לא תופס CPU(חוץ מלתפוס ולשחרר אותו)
ככה שהTHREAD הראשי שלי יכול להמשיך ולבצע פעולות(באמת במקביל למחיקה), ולכן ה CPU לא מחכה למחיקה
ג- ASYNC מאט את הכתיבת קבצים? מוזר, חשבתי שלתפוס כל פעם THREAD מה THREADPOOL יקח יותר זמן מאשר המכונת מצבים שהוא יוצר- אשמח לראות את הקוד המקבילי שלך שאמרת שהוא הכי יעיל
לצפיה ב-'>'
>
21/03/2017 | 17:00
6
32
א- התמונה לא שבורה אצלי (מוזר)
אני מדביק אותה שוב כאן
 
ב- לא מבין . TASK RUN כן פותח THREAD נוסף מה POOL. וזה שהוא לא משתמש ב הרבה CPU זה לא אומר כלום
כל THREAD נוסף זה עוד זיכרון.
א תתאר לך ש100K באים לעשות לך את זה ...אז 100K ט'רדים יפתחו ? נראה לך הגיוני? אפשרי אבל הוא יחנק.
 
 
ג - זה לא ASYNC מאט. המערכת ב RUNTIME יוצרת STATEMACHINE של לפני ה AWAIT ואחרי ה AWAIT והמעבר הזה - מאט את הפעולה בכללותה.
וקןדם כל השתמשנו כאן ב ASPARALLEL
ופה ה CATCH.
ASPARALLEL לא יצור לך THREADS יותר מ כמה CORES שיש לך
אצלי יש 8 CORES.
אז 8 THREADS עבדו.
(אתה יכול שהוא יצור לך יותר מ 8 אבל זה כבר משהו אחר)
 
לסיכום ולפי המבחו - אם אתה רוצה PERFORMANCE - זה עם ASPARLLEL  ( בלי ASYNC).
לצפיה ב-'תגובה'
תגובה
22/03/2017 | 09:08
5
19
א- AsParallel.
 למה שהוא יהיה יותר מהיר מאשר סידרתי? הרי בסוף אי אפשר למחוק 2 קבצים בו זמנית
 ואם הוא מחלק THREAD אחד לכל CORE זה מוזר, כי תמיד חשבתי שפרוסס רץ בתוך CORE אחד , ואי אפשר שפרוסס יחולק בין כמה CORE (מעניין..למדתי)
אז גם אם יש חלוקה לCORE , בסוף ה I/O יכול למחוק רק קובץ אחד בו זמנית
 
ב- אשמח אם תראה לי את הקוד שכתבת עבור ה AWAIT
 
תודה
לצפיה ב-'בוודאי'
בוודאי
22/03/2017 | 09:36
4
19
א-למה שהוא יהיה יותר מהיר מסדרתי ? לא יודע. אני אצטרך לברר את זה. כנראה זה קשור ל SSD יחד עם FW4. ( שוב כנראה)
מעניין יהיה לראות את המבחן עם HDD מחטים. פרוסס זה מרחב זיכרון .
בתוך כל פרוסס יש לפחות THREAD אחד שהוא תכלס רץ על CORES.
 
שוב - פרוסס זה וירטואליזציה של זיכרון , ט'רד זה וירטואליזציה של CPU.
תחשוב על CORE אחד עם תוכנית עם 5 ט'רדים.
כל אחד מקבל את ה TIME שלו על ה CPU. כלומר כל ט'רד רץ בזמן משלו ( ורק הוא) על ה CORE . אז אם אתה מסתכל עכשיו על הרבה פרוססים עם הרבה טרדים - אתה יכול להבין למה זה וירטואליזציה של CPU.
 
ASPARALLEL  - זה מה שכיף בו - שהוא פותח THREAD עבור כל CORE.
 
 
ב -  בוודאי הנה הקוד. שים לב שבניתי פונרציה קריאה וכתיבה אסינכית ולא אסינכית.  
רץ ב LINQPAD
לצפיה ב-'תגובה'
תגובה
22/03/2017 | 09:56
3
14
חשבתי בהתחלה ש AsParaller זה כיביכול "תיכנות ישן" ועדיף תמיד ASYNC שזה הרי החידוש של הדוטנט הדי חדש(3/4 שנים)
 
ב.
. אז מה דעתך?
יש לי WIN SERVICE בלי UI והוא עובר על רשימה של תיקיות(יש בהם המון קבצים)ורוצה למחוק קבצים בתנאי מסויים(גודל גדול מ X בתים)
איך עדיף לעשות זאת?
לעשות
 foreach directoryPath in ListOfDirectoriesPath
{
 Directory.EnumerateFiles(directoryPath , "*.*", SearchOption.AllDirectories).Where(item=>item.Length>1000).AsParallel().ForAll(T=>T.DELETE)


}
חושב שזה הכי מהיר?
לצפיה ב-'ממש לא'
ממש לא
22/03/2017 | 10:12
2
19
כל הקטע ב ASYNC זה לחסוף ב THREADING עבור פעולות שלא צריכות אותם
 
ASYNC תמיד היה
ב APM
EAP
TAP
 
פשוט עכשיו עשו את זה יותר קל למתכנת
 
לגבי ב' - צריך לבדוק
כמו תמיד תריץ בדיקה
לצפיה ב-'תגובה'
תגובה
22/03/2017 | 11:34
1
17
עזרת לי מאוד בהבנה כללית, אחזור כל על כמה שאמרת כדי ללמוד שנית
ברשותך כמה נקודות אחרונות
1- ASYNC זה לפעולות שיש מימוש להם כבר כASYNC כמו  readasync וכו' שאין בהם TASK.RUN ( לפחות לא בטוח כי אנו לא יודעים את המימוש) ולכן לא צריך לפתוח THREAD אלא כשהם יגמרו הם יודיעו לTHREAD שלי,
זה הכי טוב שיש
צודק?
2- AsParaller   בדוגמא שנתתי למעלה, (ונגיד שהגדלתי את כמות הTHREAD שלי מעבר לכמות הCORE ע"י MaxDegreeOfParallelism) מה יעשה?
ישלח כל ITEM לTHREAD נפרד, ואם נגמרו לי הTHREAD שהגבלתי אותו הם ימתינו עד שיתפנה THREAD ?
נשמע בזבזני לשלוח כל ITEM ל THREAD זה אומר שעבור כל ITEM אני תופס ומשחרר THREAD .
3- כאשר אני שולח ITEM ל THREAD דרך ה AsParaller   הרי הTHREAD ננעל מייד כי הוא מחכה ל I/O ואז ה THREAD הזה לא מקבל זמן CPU אלא ממתין עד שהפעולה תיגמר ?
אם כן למה שלא אגביל את כמות הTHREAD לפעולה הזאת לכמות עצומה?
 
4- לגבי הבדיקה, הסביבה שלי לא עובדת כרגע, נקווה שאצליח לשחזר אותה( אם ממש ישעמם לך אשמח אם תריץ בדיקה :) )
 
ממש תודה רבה על הכל
לצפיה ב-' >'
>
22/03/2017 | 13:18
23
1- 95% מדוייק. לפעמים יש פעולות שהם לא IO , לדוגמא חישוב מאד מסובך  ואתה ב יישום GUI ולא רוצה לתקוע את ה UI. אז אתה פותח TASK.RUN תחת מתודה שנקראת נגיד DOCALC - ואז שם אתה עושה AWAIT ( שים לב אין כאן IO)  ואז זה לא משפיע על ה GUI ( גם בלי ה AWAIT זה לא ישפיע כי פתחת ט'רד) אבל מה שכן זה יתן לך  CONTINUATION לתוצאה : 
 
 
somehere in the gui app you call this :

await DoCalc();


async DoCalc()
{
var t=    await Task.Run<int>(()=> some heavy CPU calculation);
       //now - do something with that t result

}

 
 
2- לא. MAXDEGREE OF PARALLELISM  יגדיל את מספר ה THREDINGS שהוא יפתח.  אתה לא חייב לפתוח כמה THREDS בשביל להוריד במקביל.
 
  //psuedo





await Task.WhenAll(listOffiles.Select( async f=> {await DownloadAsync(f); __doSomethingWithF__();}  ));
3- כאשר אתה שולח ITEM ל THREAD  על ידי ASPRALLEL ואתה לא עובד שם ASYNC , אז ה THREAD מחכה. והוא לא משרת אף אחד אחר ומחכה לתוצאה שתחזור. בשביל זה משתמשים בפעולות IO  עם ASYNC.
שוב לא צריך לפתוח THREAD בשביל לעשות פעולת IO במקביל ( ראה קוד עליון) אבל שאלת ספציפי אז אני עונה ספציפי.
 
4- בדיקה על מה ?
 
 
לצפיה ב-'interface ומחלקות אבסטרקטיות'
interface ומחלקות אבסטרקטיות
19/03/2017 | 09:40
2
65
אני מבין מה כל אחד עושה ואיך עובד אבל גם אחרי שחיפשתי לא מעט באינטרנט לא הצלחתי להבין .. האם interface יכול לרשת ממחלקה אבסטרקטית וההיפך האם interface יכול לממש מחלקה אבסטרקטית
תודה
לצפיה ב-'לא'
לא
19/03/2017 | 12:46
46
אינטרפייס לא יכול לרשת ממחלקה, כי הוא בסך-הכל הצהרה על members ציבוריים ולא מכיל בעצמו שום קוד בר-ביצוע.
 
זה כמובן גם היתרון שלו, הוא לא קוד אלא אוסף הצהרות בלבד. יתרון אחר נוסף חשוב של אינטרפייסים הוא שאפשר לרשת כמה מהם, להבדיל ממחלקות שכל מחלקה יכולה להיות לה מחלקה-אם אחת בלבד, אינטרפייס או מחלקה יכולים לממש אפס או יותר אינטרפייסים שונים.
 
בברכה,
זיו
לצפיה ב-'עצם השאלה מראה שאינך מבין מה זה Interface...'
עצם השאלה מראה שאינך מבין מה זה Interface...
02/04/2017 | 16:03
10
לצפיה ב-'יש לי פרויקט מורכב להגיש ולא מוצאת את הידיים והרגליים'
יש לי פרויקט מורכב להגיש ולא מוצאת את הידיים והרגליים
17/03/2017 | 17:35
78
אין לי שאלה מסויימת לשאול, ואני ממש מבקשת שמישהו יפנה אליי בפרטי ויעזור לי צעד צעד עם הפרוייקט. זה מאד מאד יעזור לי.
תודה!
לצפיה ב-'הפצת תוכנה מבוססת vb.net עם MySql למחשבים אחרים'
הפצת תוכנה מבוססת vb.net עם MySql למחשבים אחרים
15/03/2017 | 09:22
31
בוקר טוב חברים,
בניתי תוכנה מבוססת VB.Net עם VS2010 עם רפרנס ל MySql.Data.Dll מConnector בגירסה 6.9.8 שהתקנתי במחשב עם מערכת הפיתוח.
לאחר סיום בנייה של התוכנה בניתי גם תוכנת התקנה לצורך הפצה של התוכנה למחשבים אחרים.
כאשר אני מתקין את התוכנה על מחשב אחר, אני מקבל שגיאה שהוא לא מוצא את ה DLL של MYSQL, למרות שבתוכנת ההתקנה הוא מעתיק גם את הDLL לתיקיית התוכנה.
מישהו יכול לעזור מה אני מפספס בשלב ההתקנה במחשב האחר? 
האם הייתי צריך לבצע עוד פעולה?
האם צריך להתקין את ה Connector של MySql  בכל מחשב בו אני רוצה שהתוכנה תעבוד ?
לצפיה ב-'קבלת גודלקובץ כאשר הוא longPath'
קבלת גודלקובץ כאשר הוא longPath
12/03/2017 | 10:37
4
42
אני רוצה מתוך C# לקבל גודל קובץ כאשר הנתיב אליו הוא long PATH (לדעתי מעל 260 תווים)
כאשר אני עושה 
 
 FileInfo f = new FileInfo(fileName);
long s1 = f.Length;
 
אני מקבל EX שאי אפשר כי זה נתיב ארוך מידי
 
אשמח לפתרון איך לעשות זאת
תודה
לצפיה ב-'כן היה לי את זה , FILEINFO לא תמך בזה אבל יש את הספריה הנל'
כן היה לי את זה , FILEINFO לא תמך בזה אבל יש את הספריה הנל
13/03/2017 | 09:24
3
38
לצפיה ב-'מעדיףבלי סיפריות כאלה'
מעדיףבלי סיפריות כאלה
14/03/2017 | 23:48
2
22
יש משהו עם INTEROP שאפשר להשתמש בפונקציה בנמצאת ב WIN API DLL
רק לא הצלחתי למצוא את זה
לצפיה ב-'אני לא רואה שם דוגמא לשימוש'
אני לא רואה שם דוגמא לשימוש
15/03/2017 | 00:13
26
האם ב GetFileSizeEx ?
אם כן אשמח בבקשה לדוגמא לשימוש(לא ראיתי שאומרים שזה פותר בעיה של LONG PATH)
לצפיה ב-'asp.net - אי המתנה לפונקציה'
asp.net - אי המתנה לפונקציה
06/03/2017 | 18:18
8
49
יש לי פונקציה שמקבלת משתנים, ושולחת מייל למשתמשים לפי פרמטרים שונים.
הפונקציה לוקחת הרבה זמן וכתוצאה מזה המשתמש ממתין עד שהדף עולה.
 
התהליך הוא כזה - המשתמש לוחץ על שמירה בטופס, בשרת מתבצעים כל מיני עידכונים לטבלאות ועוד (כשניה), ואז מופעלת הפונקציה למשלוח מייל - שהיא בתורה עוברת על כל מיני חוקים ואוספת נמענים למייל - חלק מהנמענים מגיעים לפי שאילתות על הActiveDirectory - וזה לוקח זמן.
 
האם יש אופציה לשגר-ושכח לפונקציה, ולמנוע מהמשתמש את זמן ההמתנה לסיום ריצת הפונקציה?
לצפיה ב-'-'
-
06/03/2017 | 20:31
2
68
יותר מומלץ : 
אתה כותב ל DB  ( או לכל מנגון אגירה אחר חיצוני) את כל המיילים שאומרים להישלח ( כלומר כל הפרמטרים וכו)
ואז  תבנה JOB  שפשוט ישלח את המיילים  ( אם מוגדר לך MAIL AGENT ב SQL)
או שפשוט יהיה קובץ חיצוני ( הרצה) EXE או SERVICE שפשוט דוגם את ה QUEUE ב DB ( את הטבלת של האימיילים  , עבור כל אלה שעוד לא נשלחו) ופשוט שולח אותם.
 
 
פתרונות אחרים כאן : 
 
לצפיה ב-'נחזור לשולחן השירטוטים'
נחזור לשולחן השירטוטים
07/03/2017 | 10:38
1
38
זאת מערכת ביצור, ועד היום הפונקציה עבדה טוב ומהר.
 
וכרגיל במערכות כאלו מישהו היכן שהוא החליט שחייבים לסבך את הפונקציה, ולהוסיף לה איתור נמענים בזמן אמת ועוד - וזה האריך את זמן הריצה.
 
מהפוסט של סטפן אני מבין שפיתרונות שגר ושכח לא מומלצים בasp.net מסיבות שונות.
 
נאפיין פיתרון של Queue או DB - ונקווה שהלקוח יבין שהוא גם צריך לשלם על זה
 
 
לצפיה ב-'כן'
כן
07/03/2017 | 13:22
30
הם לא מומלצים מהסיבה של RECYCLE שיכול להעיף את העבודה שלך
ולכן יש את האופציה השלישית שכן מאפשרת את זה ( ויש גם ספריות בנושא)
 
אבל עזוב
הכי נכון זה שמישהו אחר שהתפקיד שלו זה לקרוא מה QUEUE - אימיילים , לשלוח אותם
ןזה יכול להיות CMD או SERVICE או כל ישום אחר
וכמובן שה QUEUE יכול להיות כל מנגנון אחסון. לשם ההפשטה בחרתי בתשובתי להגיד SQL SERVER ( גם בגלל הסיבה שיש לו JOBS ובכלל אופציה הגדרת שרת MAILS)
אבל אם תשאל אותי - SQL SERVER לא אמור לשלוח מיילים
למרות שאני רואה א זה הרבה אבל אני לא מסכים עם זה
SQL SERVER זה מסד נתונים ומסד נצונים צריך להחזיק נתונים
את הנתונים של שליחת אימייל - שמישהו אחר יקרא ויעשה.
 
 
 
לצפיה ב-'לדעתי'
לדעתי
08/03/2017 | 08:54
4
37
כדי לא להמתין אפשר להריץ Task שלא מחכים לו (לא עושים לו await או result) זה הדרך המלוכלכת.
 
הדרך היותר יפה זה להבין שיש לך פה 2 משימות שלא קשורות אחת לשניה:
1. שמירת המידע ב DB
2. שליחת המיילים לנמענים
 
אז מה עושים? separation of concerns
האתר (בין אם זה MVC או webApi) מקבל את הבקשה מהלקוח, מעדכן את הבסיסי נתונים וכל הדברים שבאחריותו. ברגע שהשלב הזה הסתיים אתה מוסיף הודעה לאיזשהו queue, כזה שהמאזין יכול לעשות עליו block או לקבל הודעה על זה שנכנס לqueue הזה איזשהו פריט. לדוגמא rabbitmq, azure storage queue+webjobs/functions וכד'.
כאשר הצרכן של התור הזה קורא את ההודעה הוא יאסוף את כל המידע של המיילים וישלח אותם.
 
זה נשמע קצת מסובך יותר - בפועל זה מפשט מחלק קוד גדול לחתיכות קטנות שיותר קל לתפעל אותן.
 
לצפיה ב-'אם ה IIS רוצה לעשות RECYCLE'
אם ה IIS רוצה לעשות RECYCLE
08/03/2017 | 09:45
2
35
(בהנחה שאתה תחת IIS) - הוא ממש לא יתחשב ב TASK שלך
אז לא הייתי הולך על זה.
לגבי ה QUEUE , בהחלט שכן הייתי הולך על זה ( וגם המלצתי על זה)
לצפיה ב-'קראתי לזה הדרך המהירה והמלוכלכת והדרך השניה עדיפה עלי'
קראתי לזה הדרך המהירה והמלוכלכת והדרך השניה עדיפה עלי
08/03/2017 | 15:03
1
29
אם לא היה ברור - אני לא ממליץ לעשות fire-and-forget tasks בקונטקסט הנוכחי!
פיתרון שמחלק את המשימות הוא הנכון יותר והעדיף יותר מבחינת ארכיטקטורה.
לצפיה ב-'לא רוצה להיות nitpick אבל כתבת "הדרך היותר יפה"'
לא רוצה להיות nitpick אבל כתבת "הדרך היותר יפה"
08/03/2017 | 15:11
32
זה לא קשור למלוכלך או יפה
יש מצב שמה שהוא כותב בכלל לא יעבוד
אז זה קשור לזה שאם זה חשוב לו שהעבודה תתבצע ב 100% אז הוא לא אמור בכלל ללכת לכיוון הזה.
 
בכל מקרה אני ואתה מכוונים לאותו כיוון :)
 
 
לצפיה ב-'זו מערכת ותיקה בASP.NET FORM.'
זו מערכת ותיקה בASP.NET FORM.
08/03/2017 | 11:22
29
 
נכון לעכשיו ירדנו מהTASK - מכיון שהפונקציה משתמשת במשאבים שמשתחררים בסוף ריצת הדף (DB Connection ואובייקטים שונים) - ולשנות את הפונקציה יעלה לא פחות ממעבר לתור ושליחת מייל מתהליך חיצוני.
 
 
לצפיה ב-'ניתן להגדיר מחדש את תפקיד כפתורי הF1-F12 ?'
ניתן להגדיר מחדש את תפקיד כפתורי הF1-F12 ?
08/03/2017 | 08:40
2
34
כך שיבצעו פעולה אחרת ממה שהוגדרה במקור?
למשל שדווקא כפתור הF7 יגביר את עוצמת השמע?
לצפיה ב-'כן'
כן
08/03/2017 | 14:29
1
32
הגדרתי ש f3 יקפיץ את כפתור המערבל כך שאוכל לשנות את הווליום עם הלחצנים ללא מגע בעכבר.
 
לצפיה ב-'יפה! ואם אני רוצה להגדיר שאחד הFים יזין את כתובת המייל שלי?'
יפה! ואם אני רוצה להגדיר שאחד הFים יזין את כתובת המייל שלי?
08/03/2017 | 14:55
20
או את אחת מססמאות הכניסה לאתר כלשהו?
אפשרי?
לצפיה ב-'gridview user control עם כפתור Edit'
gridview user control עם כפתור Edit
03/03/2017 | 19:16
1
23
שלום חברים
אני מנסה לייצר USER CONROL של גריד דינאמי שיכלול בתוכו כפתור EDIT. הבעיה שלי שכאשר הקונטרול מוצג בדף הכפתור מבצע רק פוסטבק ולא מגיע לאיוונט שנקבע לו.
זה הקוד:
Gridforedit.ascx.cs
public partial class UserControl_GridForEdit : System.Web.UI.UserControl
{
    public event EventHandler ButtonEditClick;
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            Session["LastDt"] = Session["LastColums"] = null;
            lblError.Visible = false;
            alink.Visible = false;
        }
        
    }
    protected void OnPaging(object sender, GridViewPageEventArgs e)
    {
    }
        
    public void BindDataForEdit(DataTable dt, string GridName = "", object[] Columns = null)
    {
        if (dt != null && dt != (DataTable)Session["LastDt"])
            Session["LastDt"] = dt;
        if (Columns != (object[])Session["LastColums"])
            Session["LastColums"] = Columns;

        if (Session["LastDt"] == null)
            return;
        if (GridName == "")
            GridName = "grd" + Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 8);

        GridView gvGeneral = new GridView();
        gvGeneral.ID = "GridName";
        gvGeneral.CssClass = "table table-striped table-bordered table-hover";
        gvGeneral.AutoGenerateColumns = false;
        gvGeneral.EmptyDataText = "אין נתונים להצגה";
        Columns = (object[])Session["LastColums"];
        dt = (DataTable)Session["LastDt"];
        try
        {
            if (Columns != null)
            {
                for (int i = 0; i < Columns.Length; i = i + 2)
                {
                    {
                        BoundField boundfield = new BoundField();
                        boundfield.DataField = dt.Columns[Columns[i].ToString()].ToString(); //Columns[i].ToString() ;
                        if (dt.Columns[Columns[i].ToString()].DataType.Name.ToString() == "Double")
                        { boundfield.DataFormatString = "{0:C}"; }
                        boundfield.HeaderText = Columns[i + 1].ToString();
                        gvGeneral.Columns.Add(boundfield);
                  }
                }
                TemplateField tfield = new TemplateField();
                tfield.HeaderText = "Edit";
                tfield.ItemTemplate = new CreateItemTemplate(ListItemType.Item);
                
                gvGeneral.Columns.Add(tfield);
           }
            else
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    BoundField boundfield = new BoundField();
                    boundfield.DataField = dt.Columns[i].ColumnName.ToString();
                    if (dt.Columns[Columns[i].ToString()].DataType.Name.ToString() == "Double")
                    { boundfield.DataFormatString = "{0:C}"; }
                    boundfield.HeaderText = dt.Columns[i].ColumnName.ToString();
                    gvGeneral.Columns.Add(boundfield);
                }
            }
            gvGeneral.DataSource = dt;
            gvGeneral.DataBind();
        }
        catch (Exception ex)
        {
&n
לצפיה ב-'נראה שלא כל ההודעה שלי נקלטה, אז הנה שוב'
נראה שלא כל ההודעה שלי נקלטה, אז הנה שוב
03/03/2017 | 19:42
28
שלום חברים
אני מנסה לייצר USER CONROL של גריד דינאמי שיכלול בתוכו כפתור EDIT. הבעיה שלי שכאשר הקונטרול מוצג בדף הכפתור מבצע רק פוסטבק ולא מגיע לאיוונט שנקבע לו.
זה הקוד:
Gridforedit.ascx.cs
public partial class UserControl_GridForEdit : System.Web.UI.UserControl
{
    public event EventHandler ButtonEditClick;
    protected void Page_Load(object sender, EventArgs e){ }
    public void BindDataForEdit(DataTable dt, string GridName = "", object[] Columns = null)
    {   GridView gvGeneral = new GridView();
        gvGeneral.ID = "GridName";
        for (int i = 0; i < Columns.Length; i = i + 2)
                    {
                        BoundField boundfield = new BoundField();
                        boundfield.DataField = dt.Columns[Columns[i].ToString()].ToString();
                        boundfield.HeaderText = Columns[i + 1].ToString();
                        gvGeneral.Columns.Add(boundfield);
                  }
                TemplateField tfield = new TemplateField();
                tfield.HeaderText = "Edit";
                tfield.ItemTemplate = new CreateItemTemplate(ListItemType.Item);
                gvGeneral.Columns.Add(tfield);}
            gvGeneral.DataSource = dt;
            gvGeneral.DataBind();}
            }
    public class CreateItemTemplate : ITemplate{
        public event EventHandler ButtonEditClick;
        private ListItemType myListItemType;
        public CreateItemTemplate(){}
        public CreateItemTemplate(ListItemType Item){myListItemType = Item;}
        public void InstantiateIn(System.Web.UI.Control container){
             LinkButton lb = new LinkButton();
                lb.ID = "btmEdit";
                lb.Text = "Edit";
                lb.Click += new EventHandler(btnClick_Click);
                container.Controls.Add(lb);
        }
        protected void btnClick_Click(object sender, EventArgs e){
            if (sender != null)  ButtonEditClick(sender, e);
        }
    }
}
TESTCONTROL.aspx
<%@ Register Src="~/UserControl/GridForEdit.ascx" TagName="u_ccE" TagPrefix="uccE" %>
<div><uccE:u_ccE ID="u_cc2" Title="cc" runat="server" /></div>
TESTCONTROL.aspx.cs
    public partial class testcontrol : BasePage{
        cDBAccess db = new cDBAccess();
            protected void Page_Load(object sender, EventArgs e) {
            u_cc2.ButtonEditClick += new EventHandler(ucc2_ButtonClick);
            object[] par = { "@ContractId", 1003, "@type", 1 };
            DataTable DT = db.GetDataTable("spListPayments", par, ref Error);
            if (DT != null && DT.Rows.Count > 0)            {
               
                    object[] Columns = { "PaymentDate",  Resources.Resource.Date,
                     ....};
                   u_cc2.BindDataForEdit(DT, "", Columns);}
               }
        }
        public void ucc2_ButtonClick(object sender, EventArgs e)
        {Response.Write("I did it");}
    }
הגריד עולה עם הנתונים והכפתורים, אבל לחיצה על הכפתור EDIT לא מגיעה לאיוונט ucc2_ButtonClick
מה אני עושה לא נכון :)
ותודה לעוזרים

חם בפורומים של תפוז

אירוח בנושא איבחון גנטי טרום לידתי
אירוח בנושא איבחון...
ב- 22/5 נארח את פרופ` יובל ירון, מנהל היחידה...
אירוח בנושא איבחון גנטי טרום לידתי
אירוח בנושא איבחון...
ב- 22/5 נארח את פרופ` יובל ירון, מנהל היחידה...
בפייסבוק שלנו כבר ביקרתם?
בפייסבוק שלנו כבר...
רוצים להיות תמיד מעודכנים במה שקורה בתפוז?
בפייסבוק שלנו כבר ביקרתם?
בפייסבוק שלנו כבר...
רוצים להיות תמיד מעודכנים במה שקורה בתפוז?

בעלי מקצוע

repair-lab מעבדת מחשבים
repair-lab מעבדת מחשבים

מקרא סימנים

בעלת תוכן
ללא תוכן
הודעה חדשה
הודעה נעוצה
אורח בפורום
הודעה ערוכה
מכיל תמונה
מכיל וידאו
מכיל קובץ