• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Form bị đơ khi kết nối internet

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Form bị đơ khi kết nối internet

Postby kedatinh233 » Thu 12/05/2011 6:22 pm

VB.NET: Cho mình hỏi có cách nào làm Form không bị treo khi mình kết nối vào mạng không vậy.



User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Thu 12/05/2011 6:47 pm

Kết nối là sao, download, upload hay làm gì? Bạn thử cho thủ tục đó vào 1 thread khác là được.

User avatar
dazzlingvit
Guru
Guru
Posts: 960
Joined: Tue 18/01/2011 10:21 am
Location: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 times
Been thanked: 112 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby dazzlingvit » Thu 12/05/2011 9:36 pm

kedatinh233 wrote:VB.NET: Cho mình hỏi có cách nào làm Form không bị treo khi mình kết nối vào mạng không vậy.

Bạn nghiên cứu về Multi-thread nhé ;)
Khi đó việc kết nối Internet sẽ được xử lý song song với ctrình của bạn (nôm na là giống như đa nhiệm của HĐH ấy).
Dazzling V.I.T
Hãy gọi tôi là vịt :)

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Thu 12/05/2011 9:42 pm

Thực ra cho vào thread khác chưa hẳn đã giải quyết vấn đề. Trước đây mình và anh Hoàng Thư đã gặp tình trạng dùng DownloadFile của namespace My, dù đã gọi trong thread khác vẫn treo chương trình. Vì vậy mình mới hỏi thao tác Internet gì. Hồi trước cuối cùng anh Hoàng Thư cũng giải quyết được, như lại giữ bí quyết mất rồi :(

User avatar
bangnhatquang68
Guru
Guru
Posts: 791
Joined: Tue 26/01/2010 12:44 pm
Location: Vĩ tuyến 17
Has thanked: 20 times
Been thanked: 38 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby bangnhatquang68 » Fri 13/05/2011 2:59 pm

ứng dụng (tiếng anh nhé).dovent()
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Re: Form bị đơ khi kết nối internet

Postby kedatinh233 » Sun 15/05/2011 9:48 am

ví dụ như mình kết nối mạng để đọc mã nguồn của trang web, lúc đó Form bi đơ. có ai giải quyết không vậy.

User avatar
TheDark
Guru
Guru
Posts: 188
Joined: Thu 04/11/2010 3:56 pm
Location: Mang Thít - Vĩnh Long
Has thanked: 6 times
Been thanked: 33 times

Re: Form bị đơ khi kết nối internet

Postby TheDark » Sun 15/05/2011 10:43 am

Vậy là download file! Mình cũng từng gặp! Nhưng mình thấy vẫn đề nan giải này không cấp thiết lắm nên bỏ qua. Mã nguồn trang web (không có multimedia, toàn text) chỉ có vài kb. Form chỉ bị đở (không treo, ứng dụng vẫn chạy) trong lúc download thôi. Nhưng nháy mắt là download xong ùi!! Form trở lại bình thường :D

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Re: Form bị đơ khi kết nối internet

Postby kedatinh233 » Sun 15/05/2011 11:08 am

mình đã làm được rồi, form không bị đơ nữa, dùng <thread> vẫn đọc được mã nguồn mà form vẫn chạy bình thường.
cho mình hỏi thêm 1 chút:
Thread.Start() để bắt đầu vậy làm thế nào để kết thúc Thread vậy?

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Sun 15/05/2011 11:42 am

Hình như là .Suspend thì phải.

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Re: Form bị đơ khi kết nối internet

Postby kedatinh233 » Sun 15/05/2011 12:32 pm

không được bạn ơi.

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Sun 15/05/2011 1:14 pm

À xin lỗi, Suspend đã bị MS gỡ ra rồi

Suspend: Obsolete. Either suspends the thread, or if the thread is already suspended, has no effect.

Bạn thay bằng cái này:

Abort: Raises a ThreadAbortException in the thread on which it is invoked, to begin the process of terminating the thread. Calling this method usually terminates the thread.

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Re: Form bị đơ khi kết nối internet

Postby kedatinh233 » Sun 15/05/2011 4:03 pm

Cũng không được nhưng cũng rất cảm ơn bạn

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  
  3.         Thread.Start()
  4. End Sub

kích làm đầu thì được nhưng kích lần thứ 2 thì báo lỗi "Thread is running or terminated; it cannot restart." mặc dù đã thread.Abort rồi.
Last edited by kedatinh233 on Mon 16/05/2011 7:14 am, edited 1 time in total.

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Sun 15/05/2011 4:44 pm

Tất nhiên, đã Abort rồi mà lại gọi Start thì nó lỗi, bạn phải khởi tạo Thread khác chứ!

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Sun 15/05/2011 5:20 pm

Bạn vui lòng cho code vào thẻ đúng nội qui.

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Re: Form bị đơ khi kết nối internet

Postby kedatinh233 » Mon 16/05/2011 7:22 am

em khia báo thế này
  1. Public Class Form1
  2.  
  3.     Dim Thread As New System.Threading.Thread(AddressOf MultiThread)

và bắt đầu Thread qua sự kiện
[vbnet] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Thread.Start()
End Sub[/vbnet]

[vbnet] Private Sub MultiThread()
Dim respHTML As String
Dim path As String
path = "http://www.google.com.vn"

Try
Dim wReq As WebRequest = WebRequest.Create(path)
If TypeOf wReq Is HttpWebRequest Then
End If
Dim wResp As WebResponse = wReq.GetResponse()
Dim respStream As Stream = wResp.GetResponseStream()
Dim reader As StreamReader = New StreamReader(respStream, Encoding.UTF8)
respHTML = reader.ReadToEnd()
Catch ex As Exception
respHTML = "<HTML></HTML>"
End Try
If Thread.IsAlive Then
'MsgBox("xong")
d = respHTML
xong = True
Exit Sub
End If
End Sub[/vbnet]
vậy đó giờ phải khởi tạo lại biến như thế nào?

User avatar
tiensever
Thành viên tích cực
Thành viên tích cực
Posts: 109
Joined: Tue 27/07/2010 10:30 pm
Has thanked: 1 time
Contact:

Re: Form bị đơ khi kết nối internet

Postby tiensever » Mon 16/05/2011 2:21 pm

bạn ơi có tài liệu hướng dẫn đọc file html chi tiết ko, cho mình xin với, càng chi tiết càng tốt :d

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Form bị đơ khi kết nối internet

Postby vo_minhdat2007 » Mon 16/05/2011 2:32 pm

Xách cái khởi tạo New xuống phía trên dòng Start.

kedatinh233
Thành viên chính thức
Thành viên chính thức
Posts: 19
Joined: Tue 23/12/2008 9:26 am
Location: https://vankhannom.info
Contact:

Re: Form bị đơ khi kết nối internet

Postby kedatinh233 » Tue 17/05/2011 8:32 am

tiensever wrote:bạn ơi có tài liệu hướng dẫn đọc file html chi tiết ko, cho mình xin với, càng chi tiết càng tốt :d

không bạn à, mình cũng đang mù về vấn đề này. làm mãi không xong

violetlotous
Thành viên tích cực
Thành viên tích cực
Posts: 101
Joined: Wed 23/04/2008 9:58 am
Has thanked: 8 times
Been thanked: 1 time

Re: Form bị đơ khi kết nối internet

Postby violetlotous » Thu 02/08/2012 11:58 am

vo_minhdat2007 wrote:Thực ra cho vào thread khác chưa hẳn đã giải quyết vấn đề. Trước đây mình và anh Hoàng Thư đã gặp tình trạng dùng DownloadFile của namespace My, dù đã gọi trong thread khác vẫn treo chương trình. Vì vậy mình mới hỏi thao tác Internet gì. Hồi trước cuối cùng anh Hoàng Thư cũng giải quyết được, như lại giữ bí quyết mất rồi :(


giải quyết vấn đề này thế nào vậy bạn. rất mong bạn giúp

TingTook
Thành viên danh dự
Thành viên danh dự
Posts: 74
Joined: Fri 27/05/2011 6:07 am
Has thanked: 1 time
Been thanked: 10 times

Re: Form bị đơ khi kết nối internet

Postby TingTook » Thu 02/08/2012 12:33 pm

dùng System.Net.WebClient ấy
trong đấy có đủ các kiểu phương thức Download
kết hợp các hàm DownloadFileAsync, DownloadStringAsync... với multithread là ổn thôi


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 8 guests