MS Office utas dari satu file DLL?

1

Saya bekerja untuk meja layanan, kami menggunakan MS Office pada Windows 7. Saya perhatikan bahwa ketika satu program kantor macet dan jika yang lain berjalan, menutup program kantor lainnya akan memungkinkan Anda untuk meluncurkan kembali yang macet, jika Anda jangan ditutup, sepertinya itu tidak berhasil.

Sebagai contoh:

Katakanlah aplikasi Outlook Anda macet dan Anda menjalankan Skype. Jika Anda mencoba meluncurkan ulang Outlook sebagian besar waktu Anda akan menerima kesalahan mengatakan sesuatu di sepanjang baris Cannot open Outlook. Namun jika Anda menutup Skype dan menjalankan Outlook lagi, Outlook akan berhasil diluncurkan dan Skype juga akan berhasil.

Jadi pertanyaan saya adalah, apakah ini terjadi karena MS Office utas dari file DLL yang sama? Seperti satu utas menjalankan satu aplikasi, dan utas lainnya menjalankan lainnya, itu masuk akal karena dari apa yang saya pahami jika sebuah utas macet dan satu utas lain menjalankannya, ia tidak akan meluncurkan utas lainnya hingga utas sekunder berakhir.

Pyth0nicPenguin
sumber

Jawaban:

0

apakah ini terjadi karena MS Office utas dari file DLL yang sama?

Ya kamu benar! Office "membagikan" beberapa DLL dengan program lain atau (lebih baik mengatakan) aplikasi lain menggunakan beberapa DLL Office. DLL adalah sejenis "server" yang menawarkan fungsinya kepada banyak "klien".

duDE
sumber
Jadi apakah akan ada cara untuk membuka kembali aplikasi tanpa harus memulai ulang utasnya?
Pyth0nicPenguin
Ini tergantung. Jika hanya satu instance diizinkan, Anda tidak akan dapat: Sistem mempertahankan jumlah referensi per proses pada semua modul yang dimuat. Memanggil LoadLibrary menambah jumlah referensi. Memanggil fungsi FreeLibrary atau FreeLibraryAndExitThread menurunkan jumlah referensi. Sistem mengeluarkan modul ketika jumlah referensi mencapai nol atau ketika proses berakhir (terlepas dari jumlah referensi).
duDE