Powered By Blogger
Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts

30 July 2008

การใช้กาน Thread + UI ของ Windows

ช่วงนี้ SMF webbord ที่ใช้โพสก็เข้าไม่ได้ ไม่ได้ติดตั้งใหม่
ไม่มีเวลา เข้าไปกู้ระบบ เลย จะลงใหม่ก็กลัวข้อมูลเก่าหาย นี่แหละหนา ปัญหาของการใช้ CMS

ส่วน WebPage ก็ update ไม่ค่อยได้ง่ายๆแล้ว
เพราะว่า เขาเปลี่ยนมาใช้ port ไม่มาตรฐาน ซึ่งก็คาดว่าทางที่ทำงาน block เรียบร้อย

ส่วน ThaiFolderSize โปรแกรม ตัวนั้นรู้สึกผมจะทำผิดเอง
ไป ซ่อนไว้ ทำให้เข้าใช้งานไม่ได้เลย

ก็เลยคิดจะเขียนใหม่อยู่เหมือนกัน ว่าจะเร่งความเร็วการค้นหา
แต่เพราะ C# มันไม่ใช่ C++ เลยลองหลายครั้งก็ช้าๆๆๆๆ
(จริงๆใช้ของ ยี่ห้ออื่น เขาก็ได้ แต่อยากลองเขียนดู )

เมื่อวานกับวันนี้ ทำโปรแกรม นำเข้าข้อมูล ใช้ Thread รัน SQL
ก็ เลย คิดว่า คงจะดี ถ้าการค้น Recursive ทุกครั้ง แยกๆๆ กันเป็น Thread
เลย ค้นหาและลองทำ

พบว่า Thread มันมีปัญหา กับ GUI พอควรเพราะคนละ Thread มันไม่ยอมให้ update GUI
เลยลอง มาหาวิธี กันต่อไป
ที่ Link นี้ครั บ

เขียนด้วย C# แหละเพราะว่ามีโค้ดเก่าอยู่ เขียนไว้นานแล้ว ของตัวเองเอามาโมดิฟายยย
ทั้งๆที่ช่วงนี้ ตั้งใจแล้วว่าจะเขียน แต่ VB.NET เพราะจะได้ไม่งง มาก หลายภาษาตีกันวุ่น
แต่ก็ โอเค นะ
Error แจ้งว่า ให้ ใช้ Control.Invoke หรือ Control.BeginInvoke แทน

ยังไม่แน่ใจเลยครับ ว่าจะทำได้ไหม ก็ลองๆดู พยายามๆๆ เผื่อจะได้โปรแกรมใหม่แรงๆ ขึ้นๆๆ


http://weblogs.asp.net/justin_rogers/pages/126345.aspx
http://weblogs.asp.net/psteele/archive/2007/08/26/anonymous-methods-and-control-invoke.aspx
http://codebetter.com/blogs/jeremy.miller/archive/2006/11/05/Using-Anonymous-Methods-with-Control.Invoke_28002900_.aspx

05 May 2007

Troubleshooting the "The Binding Handle Is Invalid" error in Visual Studio 2005

แก้ปัญหา นี้ ใน ทั้ง Visual C# 2005 Express Edition และ
Visual Web Studio 2005 Express Edition เวลามีปํญหา
เวลารัน แล้ว ขึ้น msgbox ว่า
The Binding Handle Is Invalid
ซึ่ง ทำให้ เข้า Debug Mode ไม่ได้
ทำดังนี้ ตาม ลิงค์


http://blogs.msdn.com/habibh/archive/2005/11/10/491572.aspx

โดย สรุป คือ ให้ Enable Services ชื่อ 'Terminal Services'
เมื่อ ทำแล้ว จะรัน ใน Debug Mode ได้เลย ครับ

ตอนแรก ติดปัญหานี้อยู่เป็นเดือน ไม่ได้ ดีบักเลย นึกว่าลงโปรแกรมผิด
เพิ่งรู้ว่า จริงๆเป็นทริก เล็กน้อย แต่ก็เป็นปํญหาหนัก ถ้าแก้ไขไม่ได้ นะ

26 April 2007

C# กับ Method Split String ครับ

ใครที่กำลังใช้ C# อยู่อาจเห็นว่า Function Split ใน C# นั้นแตกต่างจาก
VB.NET อยู่มาก คือว่า มันมี prarameter เป็น char

ถ้าต้องการให้ ใช้ String ในการแยก ข้อความ ให้ทำโดย ใช้ Function ของ Web นี้ครับ
http://community.sgdotnet.org/blogs/triplez/archive/2005/04/24/14627.aspx

หรือ อีกวิธีก็ใช้ Regex class , static function ดังตัวอย่างนี้ครับ

String s = "Test ==> do you like it ";
String [] buf = System.Text.RegularExpressions.Regex.Split( s , "==>" ) ;

ก็จะได้ ผลลัพท์ เป็น
buf[0] = "Test" ; buf[1]="do you like it " ; ครับ
วิธีนี้ใช้ได้กับ String s ส่วนมากแต่ไม่ทั้งหมดนะครั้บเนื่องจากถ้าเป็น Regulaexprersion เช่นแยกด้วย จุด (.) ต้องใส่เครื่องหมายเป็นดังนี้ครับ
"\." ลองอ่านเพิ่มอีกทีนะครับ

=======================
update 25 april 200 7
จากลองเล่น C# ดูแล้ว ปรากฏว่า String.Replace(String, String , Enum บางอย่าง );
มันใช้งานได้ นะครับ แต่ว่าต้อง กำหนด ประเภทวิธีการเปรียบเทียบก่อน (enum นั่นแหละ )