سلام
اين همه كد براي كپي كردن 1 فايل؟
اگر ایشان نمیخواستند از دستورات فوق استفاده کنند، باید از همان File.Copy استفاده میکردند.
متد File.Copy هم فقط یک خط ناقابل است!!! و هیچ ساپورتی برای میله پیشرفت و درصد کپی ندارد.
مجموعه دستورات فوق میتواند در هر لحظه نوار پیشرفت را آپدیت کند و کاربر را از میزان کپی شده مطلع کند.

مگه BackGroundWorker چه مشكلي داره؟
همانطور که اشاره کرده بودم، دستورات فوق هم بهتر است با چند ریسمانی اجرا شود و BackgroundWorker هم یکی از راه های پیاده سازی چند ریسمانی در دات نت ولی این مسئله ربطی به نوار پیشرفت و ProgressBar ندارد.