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 !
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/
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 @@