01/10/2018, 01:08

C# - Mở nhiều form bị trùng dữ liệu do trùng bộ nhớ đệm

Mình đang làm multi-profile cho ứng dụng c# sử dụng gecko !

Ở form mỗi lần click button sẽ mở 1 form 2. Và click nhiều lần sẽ mở nhiều form2

Đây là đoạn code trong form2:

Gecko.Xpcom.ProfileDirectory = directory; //Dùng để đổi địa chỉ profile browser cho trình duyệt
Gecko.Xpcom.Initialize(@“C:UsersAdministratorDesktopxulrunner-33.0.en-US.win32xulrunner”);

Và 2 lần click mở form2 mình đã change Gecko.Xpcom.ProfileDirectory thành 2 địa chỉ folder profile khác nhau

Nhưng gặp vấn đề là khi Gecko.Xpcom.Initialize đã chạy thì Gecko.Xpcom.ProfileDirectory không thể thay đổi.
Ví dụ: Mình mở form2 lần 1 thì đã đổi ProfileDirectory thành folder 1
mở form2 lần 2 thì profile folder vẫn là folder 1 không đổi thành folder 2 mặc dù Gecko.Xpcom.ProfileDirectory đã đổi

Mình build 2 file exe và click exe1 mở profile 1 và exe 2 mở profile 2 thì nó vẫn chạy bt không bị trùng. Nhưng 1 exe mở 2 form khác profile thì vẫn bị trùng.

Mình cần hỗ trợ giải quyết vẫn đề này !

Nguyễn Chiến Thắng viết 03:22 ngày 01/10/2018

GeckoFx không hỗ trợ đa luồng, trên mỗi application chỉ có thể dùng 1 ProfileDirectory và Initialize duy nhất.
Giải pháp cho vấn đề này là bạn có thể dùng multiple processes.

Bạn có thể tham khảo ví dụ ở cuối bài viết tại link: https://thebot.net/threads/c-gecko-multiple-browser-settings-browser.351995/

Duong Hong Anh viết 03:10 ngày 01/10/2018

Tiện bác cho e hỏi gexko lúc open ngốn ram ko. Tầm bao nhiêu mb ??, e thấy selenium tốn ram vãi nồi, test tý lên 300 mb @@

Bài liên quan
0