Ookii-dialogs-wpf: معلقة ما لم تعمل تحت المصحح

تم إنشاؤها على ٢٥ نوفمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: ookii-dialogs/ookii-dialogs-wpf

عندما أحاول استخدام VistaFolderBrowserDialog في تطبيق WPF .NET 4.6.1 ، فإنه يعلق التطبيق. إذا قمت بتشغيله تحت مصحح الأخطاء (في وضع التصحيح أو الإصدار) فإنه يعمل بشكل رائع.

لقد حاولت إعادة إجراء ذلك في نموذج التطبيق عن طريق تغيير المكالمات المختلفة والتبديل إلى حزمة Nuget ، ولا يزال يعمل بشكل جيد.

لقد حاولت تبسيط الطريقة التي أتصل بها في VistaFolderBrowserDialog ونسخ / لصق نموذج التعليمات البرمجية في تطبيقي ، ولا يزال معلقًا.

هل لديك أي أفكار حول سبب أو كيفية تعقب المشكلة؟

need-more-info

التعليق الأكثر فائدة

شكرًا على عودتك إلي بسرعة ،augustoproiete. لقد جربت العديد من خطوات repro لاستكشاف الأشياء. سأحاول إضافة المزيد من الاستخدام إلى تطبيقات WPF الأخرى الخاصة بي لمعرفة ما إذا كان هناك بعض العوامل المشتركة التي قد تحدد سبب عدم نجاحها.

لقد قمت ببعض عمليات تسجيل الدخول وأعيد إنتاجها في تطبيقي ، يكون التعليق عند int result = dialog.Show(owner); في private bool RunDialog(IntPtr owner)

ال 3 كومينتر

مرحبًا matelich ، لست قادرًا على إعادة إنتاج سلوك التعليق الذي وصفته.

مرفق نموذج مشروع لتطبيق WPF باستخدام .NET 4.6.1 الذي يفتح VistaFolderBrowserDialog باستخدام Ookii.Dialogs.Wpf v1.1.0 (_ الأحدث حتى كتابة هذه السطور_) وتمكنت من تشغيل:

  • Debug build _ بدون_ مرفق مصحح الأخطاء
  • Debug build _ مع_ مرفق مصحح الأخطاء
  • Release build _ بدون_ مرفق مصحح الأخطاء
  • Release build _with_ مرفق مصحح الأخطاء

لم يحدث تعليق أو استثناء.

إذا كان بإمكانك تزويدي بطريقة إعادة إنتاج سلوك التعليق ، فسيسعدني إجراء مزيد من التقصي.

تم إرفاق الشفرة ذات الصلة في النموذج:

var dialog = new VistaFolderBrowserDialog
{
    Description = "Please select a folder.",
    UseDescriptionForTitle = true,
};

if (!VistaFolderBrowserDialog.IsVistaFolderDialogSupported)
{
    MessageBox.Show(this,
        "You are using an old Windows version. The regular folder browser dialog will open.",
        "Sample folder browser dialog");
}

if (dialog.ShowDialog(this).GetValueOrDefault(false))
{
    MessageBox.Show(this, "The selected folder was: " + dialog.SelectedPath,
        "Sample folder browser dialog");
}

image

image


شكرًا على عودتك إلي بسرعة ،augustoproiete. لقد جربت العديد من خطوات repro لاستكشاف الأشياء. سأحاول إضافة المزيد من الاستخدام إلى تطبيقات WPF الأخرى الخاصة بي لمعرفة ما إذا كان هناك بعض العوامل المشتركة التي قد تحدد سبب عدم نجاحها.

لقد قمت ببعض عمليات تسجيل الدخول وأعيد إنتاجها في تطبيقي ، يكون التعليق عند int result = dialog.Show(owner); في private bool RunDialog(IntPtr owner)

يبدو مرتبطًا:
أعاني من البطء عندما يكون المسار المحدد هو مسار شبكة طويل.

إذا قمت بتمكين Native code debugging ، أرى أن معظم الوقت يقضي في مكان ما في مكدس الاستدعاءات هذا:

win32u.dll!NtUserMsgWaitForMultipleObjectsEx

() مجهول
user32.dll! RealMsgWaitForMultipleObjectsEx () غير معروف
shell32.dll! SHProcessMessagesUntilEventsEx () غير معروف
shell32.dll! CChangeRouterProxy :: RegisterThread () غير معروف
shell32.dll!
() مجهول
comdlg32.dll! CFileOpenSave :: Show () غير معروف
[مُدار إلى الانتقال الأصلي]
Ookii.Dialogs.Wpf.dll! Ookii.Dialogs.Wpf.VistaFolderBrowserDialog.RunDialog (مالك System.IntPtr) سطر 171 C #
Ookii.Dialogs.Wpf.dll! Ookii.Dialogs.Wpf.VistaFolderBrowserDialog.ShowDialog (System.Windows.Window owner) Line 157 C #
Ookii.Dialogs.Wpf.Sample.exe! Ookii.Dialogs.Wpf.Sample.MainWindow.ShowFolderBrowserDialog () Line 166 C #
Ookii.Dialogs.Wpf.Sample.exe! Ookii.Dialogs.Wpf.Sample.MainWindow._showDialogButton_Click (كائن المرسل ، System.Windows.RoutedEventArgs e) السطر 56 C #

أو:

win32u.dll!00007ff9d17c9164()   Unknown
user32.dll!00007ff9d2ca059d()   Unknown
shell32.dll!SHProcessMessagesUntilEventsEx()    Unknown
shell32.dll!CChangeRouterProxy::RegisterThread()    Unknown
shell32.dll!SHChangeNotifyRegisterThread()  Unknown
comdlg32.dll!CFileOpenSave::Show()  Unknown
[Managed to Native Transition]  
Ookii.Dialogs.Wpf.dll!Ookii.Dialogs.Wpf.VistaFolderBrowserDialog.RunDialog(System.IntPtr owner) Line 171    C#
Ookii.Dialogs.Wpf.dll!Ookii.Dialogs.Wpf.VistaFolderBrowserDialog.ShowDialog(System.Windows.Window owner) Line 157   C#
Ookii.Dialogs.Wpf.Sample.exe!Ookii.Dialogs.Wpf.Sample.MainWindow.ShowFolderBrowserDialog() Line 166 C#
Ookii.Dialogs.Wpf.Sample.exe!Ookii.Dialogs.Wpf.Sample.MainWindow._showDialogButton_Click(object sender, System.Windows.RoutedEventArgs e) Line 56   C#

أو:

ntdll.dll!RtlpHashStringToAtom()    Unknown
ntdll.dll!RtlpFreeAllAtom

() مجهول
ntdll.dll! RtlpDereferenceAtom () غير معروف
ntdll.dll! RtlDeleteAtomFromAtomTable () غير معروف
kernel32.dll!
() مجهول
dui70.dll! DirectUI :: Value :: _ ZeroRelease () غير معروف
dui70.dll! DirectUI :: DUIXmlParser :: _ DestroyTables (void) غير معروف
dui70.dll! DirectUI :: DUIXmlParser :: ~ DUIXmlParser () غير معروف
dui70.dll! DirectUI :: DUIXmlParser :: `vector deleting destruction '() غير معروف
dui70.dll! DirectUI :: AccHDelete(فئة DirectUI :: RefcountBase *) غير معروف
shell32.dll! _DUI_ShellStyleSheet_UninitThreadIfPossible (باطل) غير معروف
shell32.dll! DUI_ShellStyleSheet_UninitThread (void) غير معروف
shell32.dll! CDUIViewFrame :: DestroyFrameWindow (void) غير معروف
shell32.dll! CExplorerBrowser :: _ CleanupFrame (باطل) غير معروف
shell32.dll! CExplorerBrowser :: Destroy () غير معروف
comdlg32.dll! CFileOpenSave :: _ OnDestroyDialog () غير معروف
comdlg32.dll! CFileOpenSave :: s_OpenSaveDlgProc () غير معروف
user32.dll! UserCallDlgProcCheckWow () غير معروف
user32.dll! DefDlgProcWorker () غير معروف
user32.dll!
() مجهول
user32.dll! UserCallWinProcCheckWow () غير معروف
user32.dll! DispatchClientMessage () غير معروف
user32.dll! __ fnDWORD
() مجهول
ntdll.dll!
() مجهول
win32u.dll!
() مجهول
user32.dll! DialogBox2 () غير معروف
user32.dll! InternalDialogBox () غير معروف
user32.dll!
() مجهول
user32.dll!
() مجهول
comdlg32.dll! CFileOpenSave :: Show () غير معروف
[مُدار إلى الانتقال الأصلي]
Ookii.Dialogs.Wpf.dll! Ookii.Dialogs.Wpf.VistaFolderBrowserDialog.RunDialog (مالك System.IntPtr) سطر 171 C #
Ookii.Dialogs.Wpf.dll! Ookii.Dialogs.Wpf.VistaFolderBrowserDialog.ShowDialog (System.Windows.Window owner) Line 157 C #
Ookii.Dialogs.Wpf.Sample.exe! Ookii.Dialogs.Wpf.Sample.MainWindow.ShowFolderBrowserDialog () Line 166 C #
Ookii.Dialogs.Wpf.Sample.exe! Ookii.Dialogs.Wpf.Sample.MainWindow._showDialogButton_Click (كائن المرسل ، System.Windows.RoutedEventArgs e) السطر 56 C #

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات