Tôi có một số mã VB6 tôi cần phải chuyển dần sang .NET. Một số điều này yêu cầu cuộc gọi đến web. Tôi đang thực hiện cuộc gọi web từ một dll .NET, và khi nó được thực hiện, nó sẽ kích hoạt một sự kiện. Tôi xử lý sự kiện trong VB6. Bây giờ điều này hoạt động tốt trên máy thử nghiệm của tôi, và phần lớn các máy của người dùng, nhưng một số người dùng nhận được một sự cố nhất quán của chương trình vào khoảng thời gian khi sự kiện được kích hoạt.Làm cách nào để chạy một cách an toàn mã và sự kiện trong .NET để VB6 có thể xử lý nó?
Tôi nghĩ đây là vấn đề về luồng. Vì vậy, làm thế nào tôi nên xử lý các chủ đề trên bên NET của sự vật? Không có bối cảnh đồng bộ hóa khi mã .NET được gọi và tôi nghĩ rằng đó có thể là vấn đề. Làm thế nào tôi sẽ có được một hoạt động async trở lại thread gọi VB6? VB6 code của tôi là STA và tôi đọc rằng mọi thứ sẽ được marshaled đến thread VB6 thông qua COM tự động, nhưng có lẽ đó là sai? Tôi không hoàn toàn hiểu phải làm gì nếu nó thực sự là một vấn đề luồng.
Tôi chưa thể tìm thấy mẫu máy tính nào gặp sự cố tai nạn và máy tính nào không gặp sự cố.
Có, bạn phải tăng sự kiện trên chuỗi được gọi là hàm tạo của bạn. Bạn cần một SynchronizationContext, bạn có thể dễ dàng có được một từ một hình thức Winforms. Một là đủ, nó không phải được nhìn thấy, chỉ cần đọc thuộc tính xử lý của nó và nó là tốt để đi. –
Hmm làm thế nào tôi sẽ nhận được rằng từ một hình thức VB6? Tôi không mở bất kỳ biểu mẫu nào trong .NET – bzuillsmith
Bạn đã thử tách và so sánh các khuôn khổ .Net trên một máy mục tiêu có thể? mặc dù Microsoft yêu cầu khả năng tương thích ngược hoàn toàn đối với các phiên bản framework .Net gần đây tôi đã tìm thấy nhiều hơn một lần tuyên bố đó về cơ bản là shit ngựa thuần túy. – Stavm