Menggunakan benang untuk membuat permintaan pangkalan data
JavaFX menyediakan API konkurensi yang direka khusus untuk melaksanakan kod dalam utas latar belakang, dengan API yang direka khusus untuk mengemas kini UI JavaFX apabila selesai (atau semasa) pelaksanaan kod tersebut. Kelas utama dalam javafx.concurrent ialah Task, yang mewakili satu unit kerja sekali sahaja yang bertujuan untuk dilakukan pada urutan latar belakang. Kelas ini mentakrifkan kaedah abstrak tunggal, call(), yang tidak mengambil parameter, mengembalikan hasil, dan mungkin membuang pengecualian yang diperiksa. Untuk melaksanakan penjalinan dengan betul bagi permintaan pangkalan data, operasi jangka panjang (akses pangkalan data) harus dilakukan dalam utas latar belakang, mengembalikan hasil operasi apabila ia selesai, dan kemudian menjadualkan kemas kini kepada UI pada UI (Aplikasi FX ) thread menggunakan Platform.runLater(Runnable r) untuk melaksanakan r.run() pada FX Application Thread.
Amalan Baik Umum untuk Multithreading
Menggunakan javafx.concurrent API
Untuk contoh:
final int courseCode = Integer.valueOf(courseId.getText()); Task<Course> courseTask = new Task<Course>() { @Override public Course call() throws Exception { return myDAO.getCourseByCode(courseCode); } }; courseTask.setOnSucceeded(e -> { Course course = courseTask.getCourse(); if (course != null) { courseCodeLbl.setText(course.getName()); } }); exec.execute(courseTask);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Benang JavaFX untuk Mengendalikan Permintaan Pangkalan Data dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!