Help me ?
chương trình của mình ra lệnh máy tính tạo một luồng mới nhầm ghi một file mới vào trong máy tính bằng câu lệnh
strLocal = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
lúc thì máy chả báo gì chạy ngon nhưng có lúc máy báo là đang được sử dụng bởi một chương trình khác. Mình lúc đầu bắt lỗi và dùng continue để chạy tiếp nhưng ko hiểu nên hỏi mọi người cách giải quyết. Nếu ko được thì chỉ mình cách để cho chương trình nghỉ một tẹo rồi lại tạo luồng mới xem có được ko
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Help me ?
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Luồng lạch như nào bạn ơi, tạo file bằng luồng đã close stream chưa ?
Chương trình kết thúc đã kết thúc luồng chưa ?
Bao chàng trai không tiếc tuổi xuân đang viết nhiều chương trình
Em đẹp xinh cũng quyết lập công chưa muốn lấy chồng
http://ipmac.vn/ <- Học lập trình ... sư
http://laptrinh.tv/ <- Kênh chia sẻ video học IT
http://www.youtube.com/user/anhnt3 <- Video thực hành lập trình... sư từ A-Z
Kết thúc ròi chứ. new rồi close lun mà.
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Bạn xem trong task manager xem còn process không?
Mình nghĩ là do chương trình của cậu chưa giải phóng được bộ nhớ.
Giúp người khác giải quyết khó khăn cũng là giải quyết khó khăn cho chính mình.
Nếu một ngày bạn khóc.Bạn hãy gọi cho tôi,tôi không hứa sẽ làm bạn cười,nhưng tôi hứa sẽ cười vào mặt bạn
uh để mình kiểm tra lại, có gì sẽ thông báo sớm, hết giờ làm rồi tớ về cơm đã ko mẹ tớ đổ đi hết @@
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Tớ kiểm tra rồi, chẳng có cái nào dùng chung cả, nó lúc thì báo lỗi lúc thì chả ý kiến gì. mệt mỏi với nó quá
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Mình post code lên cho mọi người xem nhé
đoạn code ghi file vào ổ cứngCode:if (startPointInt == 0) { strLocal = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None); } else { strLocal = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.None); } int bytesSize = 0; byte[] downBuffer = new byte[2048]; while ((bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0) { strLocal.Write(downBuffer, 0, bytesSize); } strResponse.Close(); strLocal.Close();
đây là đoạn code gọi nó
đoạn code này được goi bởi hàmCode:for (int i = 0; i < 10; i++) { if (urlPDF[i, 3] != null) if (!objDataBase.checkExist(urlPDF[i, 2], "Tencongvan")) if (!objDataBase.checkExist(urlPDF[i, 0], "Socongvan")) if (analysisPath(urlPDF[i, 1], folderName) != "error") { //try //{ downloadFile(0, objConnection.conversion(urlPDF[i, 3]), analysisPath(urlPDF[i, 1], folderName) + "\\" + stripDiacritics(urlPDF[i, 2]) + urlPDF[i, 5]); string[] stringInsert = new string[11] { total++.ToString(), urlPDF[i, 0], urlPDF[i, 2], urlPDF[i, 1], urlPDF[i, 1], analysisPath(urlPDF[i, 1], folderName), " ", urlPDF[i, 4], "True", urlPDF[i, 5], folderName }; objDataBase.insertDataPDF(stringInsert); //} //catch //{ // continue; //} }
mình đang phân vân chỗ hủy thred nó có còn tồn tại cái gì ko vì thread mình đóng đột ngột cứ đến 1000 ms là nó đóng và gọi thread lạiCode:private void time_Tick(object sender, EventArgs e) { timeCount++; if (timeCount == 1) { newThreadPdf = new Thread(new ThreadStart(objRefreshWeb.refesh)); newThreadPdf.Start(); } if (timeCount == 1000) { try { newThreadPdf.IsBackground = true; newThreadPdf.Abort(); } catch { } timeCount = 0; showPDF(); } }
Giúp mình xem nó bị làm sao với
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.
Không hiểu flow của code lắm nhưng đang nghi lắm cái đoạn Timer_Tick.
Nếu có 1000 tick thì tạo ra 1000 thread à ?
newThreadPdf = new Thread(new ThreadStart(objRefreshWeb.refesh));
Cái thứ 2 là bạn truy cập tài nguyên file nhưng lại không có cớ chế đồng bộ hóa thread -> xem lại có khả năng hai cái thread cùng truy cập và xung đột hay chờ lấn nhau không ?
Bao chàng trai không tiếc tuổi xuân đang viết nhiều chương trình
Em đẹp xinh cũng quyết lập công chưa muốn lấy chồng
http://ipmac.vn/ <- Học lập trình ... sư
http://laptrinh.tv/ <- Kênh chia sẻ video học IT
http://www.youtube.com/user/anhnt3 <- Video thực hành lập trình... sư từ A-Z
bạn ơi if(timecount==1) mới gọi thread mới cơ mà chứ có phải tick nào cũng tạo đâu. Với lại mình đã hủy ở timecount =1000 rồi. Nhưng vẫn báo lỗi tớ nghi là cai thread tớ hủy nó vẫn còn bám vào cái file đấy nên mới post lên hỏi mọi người
Chiến thắng bằng mọi thủ đoạn. Quan trọng là kết quả.