دسته بندی ها
13:17 1400/05/12

اجرا و نمایش انیمیشن در WPF هنگام کلیک روی دکمه

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : WPF سی شارپ

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3943
1 نظر
mojtabahakimian : در واقع Thread کار نمیکنه لطفا راهنمایی بفرمایید

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 06:40 1400/05/12
هوش مصنوعی

پاسخ هوش مصنوعی

برای حل مشکل متوقف شدن انیمیشن در هنگام کلیک روی دکمه در WPF، شما می توانید عملیات سنگین را در یک Thread جداگانه انجام دهید و انیمیشن را در Thread اصلی ادامه دهید. در اینجا روشی پیشنهاد می شود که از async/await استفاده می کند تا عملیات پایگاه داده را به صورت غیرهمگام انجام دهد.

ابتدا مطمین شوید که متد DbContext شما باز هم از خلاصه سازی async پشتیبانی می کند. سپس کد زیر را به کار ببرید:

private async void Command4_Click(object sender, RoutedEventArgs e)
{
    // اجرای انیمیشن
    Storyboard sb = TryFindResource("RotationBtn") as Storyboard;
    Storyboard.SetTarget(sb, Command4);
    sb.Begin();

    // انجام عملیات پایگاه داده به صورت غیرهمگام
    var MyQuery = await Task.Run(() => dbms.Database.SqlQuery<DB_Cust>("SELECT * FROM Customers").ToList());
}

در این کد، ابتدا انیمیشن شروع می شود و سپس عملیات پایگاه داده در یک Task جدید اجرا می شود تا تاخیر در UI ایجاد نشود. با این کار می توانید انیمیشن را هنگام پردازش داده ها همچنان فعال نگه دارید.

همچنین اطمینان حاصل کنید که نوع متد `Command4_Click` را به `async void` تغییر دهید چون که از `await` استفاده می کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود