From 3580213b46261214db81b58feabe015ede720be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=94=9F=E6=9D=82=E7=89=A9=E6=88=BF?= <88823709+TC999@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E9=94=81=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ui.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ui.rs b/src/ui.rs index 9f411a7..92ad361 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -62,14 +62,17 @@ impl AppDataCleaner { let rx = Arc::new(Mutex::new(rx)); // 创建线程进行扫描 + let appdata_cleaner = Arc::new(Mutex::new(self.clone())); // 克隆 AppDataCleaner 结构体实例 thread::spawn({ - let appdata_cleaner = Arc::clone(&self.folder_data); // 使用 Arc> + let appdata_cleaner = Arc::clone(&appdata_cleaner); // 克隆 Arc let tx = Arc::clone(&tx); // 克隆发送者 let rx = Arc::clone(&rx); // 克隆接收者 move || { - // 解锁并获取数据 - let appdata_cleaner = appdata_cleaner.lock().unwrap(); // 获取锁 - scanner::scan_appdata(&appdata_cleaner.lock().unwrap().selected_target, &appdata_cleaner.lock().unwrap().selected_target, tx.lock().unwrap().clone()); + let appdata_cleaner = appdata_cleaner.lock().unwrap(); // 获取锁,获取 AppDataCleaner 实例 + let tx = tx.lock().unwrap(); // 获取 tx 的锁,得到 Sender 类型 + + // 传递解锁后的 Sender + scanner::scan_appdata(&appdata_cleaner.selected_target, &appdata_cleaner.selected_target, tx); } }); }