السلام عليكم
يوجد عندي مشكلة في برنامج اقوم بعمله وهو عبارة عن Chat Program
لن اطيل عليكم سوف ارفق البرنامج لكي ترو المشكلة
علما بان المشكلة في class textcht
في client
up
اين انتم يا شباب
اشرح مشكلتك يا أخي ! فكيف تطلب من الأعضاء أن يحملوا البرنامج ويئعدوا يجربوه علشان يعرفوا فين الخطأ وبعد ذلك يصلحوه ويرجعوه ويشرحو لك سبب الخطأ وكيفية اصلاحه !!!؟
انا اسف يا اخي الكريم لعدم شرح المشكلة
ولكن انا فعلا لا اعرف اين المشكلة
فعندما احاول ان ارسل قيمة من كلاس لفورم احصل على خطا CROSS THREAD
اقتباساشرح مشكلتك يا أخي ! فكيف تطلب من الأعضاء أن يحملوا البرنامج ويئعدوا يجربوه علشان يعرفوا فين الخطأ وبعد ذلك يصلحوه ويرجعوه ويشرحو لك سبب الخطأ وكيفية اصلاحه !!!؟
بالظبط كده زى ما ميزوووو قلك ...ازيك يا ميزو الاول..واحشنا
بص بقى يا سيدى ..المشكله عندك فعلاً فى الCross Thead ..ان فى thread عندك بيستخدم method بتعدل فى كنترول موجود فى الmain thread بتاع البرنامج بتاعك(تقريباً عندك ال methodاللى موجوده فى OnConnected اللى اسمها AddLog لانها بتعدل فى logBox اللى موجود فى الmain thread وفى methods تانيه) ..الموضوع ده كان عادى فى 2003 ...لكن لما جيت اشتغل على 2005 express (لسه ما اشتغلت على النهائى والله) طلعلى error زى ده ..لما شفت الdocumentation لقيت ان مينفعش thread يوصل لكنترول موجود فى thread تانى فى العادى ..وحلها ان تغير فى property
(على حسب كلامهم هما منعوا الحكايه دى عشان ممكن وصول اكثر من Thread لنفس الcontroll فى نفس الوقت ممكن يسبب مشكله ويخلى control فى حاله غير مستقره)
ربنا يستر تلاقيك دخت دلوقتى من العك اللى انا كتبته ده :lol: :lol:
الproperty هى
CheckForIllegalCrossThreadCalls = false;
اول مره اشوف property بالاسم الطويل دا كله :lol: ..المهم جربها وهتشتغل ان شاء الله
سلاااااااااااام
تم تعديل هذه المشاركة بواسطة abdelwahed في 5 مارس 2006 في 01:43
الف شكر
ولكن اين اضع هذا الكود يا خي الكريم
حيث انني عندما وضعته حصلت على الخطا التالي
Error 1 The name 'CheckForIllegalCrossThreadCalls' does not exist in the current context D:\Documents and Settings\MSM\Desktop\Chat\Chat\Client\Client\TextChat.cs 32 13 Client
تم تعديل هذه المشاركة بواسطة oldman في 5 مارس 2006 في 01:46
حطه فى ال constructor
الف الف شكر يا باشا
اشتغل تمام الحمد لله
انا الحقيقة مش عارف كيف اشكرك لان هذا البرنامج هو عبارة عن مشروع تخرجي
وانا متوقف عن العمل بسبب هذه المشكلة منذ اسبوع
الحمد لله انه اشتغل.. وربنا معاك
اقتباسالبرنامج هو عبارة عن مشروع تخرجي
نفسى الاقى ليا فكره لمشروع تخرج :( :( :( :( :( ..ادعولى
ان شاء الله تلاقي فكرة ممتازة للمشروع
والله هو اكتر حاجة الواحد بيتغلب فيها الفكرة
احيانا بتكون اكتر من المشروع نفسه
أخواني
استخدمت CheckForIllegalCrossThreadCalls = false; وكان فعلاً كالمعجزة ولكن لدي مشكلة الآن
أنا أستخد هذا الكود لعمل ping لكل ip address في listview وكل شي يبدو ممتازا ولكن بعد فترة أحصل على هذا الخطأ:
InvalidArgument=Value of '17' is not valid for 'index'. Parameter name: index
وهذا هو الكود:
public void ping_to_host()
{
CheckForIllegalCrossThreadCalls = false;
listview_item = 0;
for (listview_item = 0; listview_item < lstHosts.Items.Count - 1; listview_item++)
{
this.Text = this.Text + ". " + listview_item.ToString();
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
Ping ping_sender = new Ping();
PingOptions ping_options = new PingOptions();
ping_options.DontFragment = true;
PingReply ping_reply = ping_sender.Send(lstHosts.Items[listview_item].SubItems[1].Text, 5000, buffer, ping_options);
if (ping_reply.Status == IPStatus.Success)
{
lstHosts.Items[listview_item].SubItems[0].Text = "Success";
lstHosts.Items[listview_item].SubItems[2].Text = ping_reply.RoundtripTime.ToString();
lstHosts.Items[listview_item].SubItems[3].Text = ping_reply.Options.Ttl.ToString();
lstHosts.Items[listview_item].BackColor = Color.Black;
}
else
{
switch (ping_reply.Status)
{
case IPStatus.BadDestination: ping_status = "Bad Destination"; break;
case IPStatus.BadHeader: ping_status = "Bad Header"; break;
case IPStatus.BadOption: ping_status = "Bad Option"; break;
case IPStatus.BadRoute: ping_status = "Bad Route"; break;
case IPStatus.DestinationHostUnreachable: ping_status = "Destination Host Unreachable"; break;
case IPStatus.DestinationNetworkUnreachable: ping_status = "Destination Network Unreachable"; break;
case IPStatus.DestinationPortUnreachable: ping_status = "Destination Port Unreachable"; break;
case IPStatus.DestinationProhibited: ping_status = "Destination Prohibited"; break;
// case IPStatus.DestinationProtocolUnreachable: ping_status = "Destination Protocol Unreachable"; break;
case IPStatus.DestinationScopeMismatch: ping_status = "Destination Scope Mismatch"; break;
case IPStatus.DestinationUnreachable: ping_status = "Destination Unreachable"; break;
case IPStatus.HardwareError: ping_status = "Hardware Error"; break;
case IPStatus.IcmpError: ping_status = "ICMP Error"; break;
case IPStatus.NoResources: ping_status = "No Resources"; break;
case IPStatus.PacketTooBig: ping_status = "Packet Too Big"; break;
case IPStatus.ParameterProblem: ping_status = "Parameter Problem"; break;
case IPStatus.SourceQuench: ping_status = "Source Quench"; break;
case IPStatus.TimedOut: ping_status = "Timed Out"; break;
case IPStatus.TimeExceeded: ping_status = "Time Exceeded"; break;
case IPStatus.TtlExpired: ping_status = "Ttl Expired"; break;
case IPStatus.TtlReassemblyTimeExceeded: ping_status = "Ttl Reassembly Time Exceeded"; break;
case IPStatus.Unknown: ping_status = "Unknown"; break;
case IPStatus.UnrecognizedNextHeader: ping_status = "Unrecognized Next Header"; break;
default: ping_status = "Unknow"; break;
}
lstHosts.Items[listview_item].SubItems[0].Text = ping_status;
lstHosts.Items[listview_item].SubItems[2].Text = "";
lstHosts.Items[listview_item].SubItems[3].Text = "";
lstHosts.Items[listview_item].BackColor = Color.Red;
}
toolStatus.Text = "Idle - " + DateTime.Now.ToLongTimeString();
// ping_thread.Abort();
}
// lstHosts.EndUpdate();
}هذا الموضوع مغلق.