Progress

Progress

คู่มือฉบับนี้แสดงวิธีการติดตามความคืบหน้าของการโหลดและบันทึกเอกสารที่ใช้เวลานาน.

การโหลดและบันทึกเอกสารที่ใช้เวลานานสามารถรายงานความคืบหน้าทีละขั้นได้ผ่านคู่ callback เล็ก ๆ: IDocumentLoadingCallback สำหรับการโหลดและ IDocumentSavingCallback สำหรับการบันทึก ทั้งสองอินเทอร์เฟซมีรูปแบบเดียวกัน — วิธี Notify(args) เพียงหนึ่งเดียวที่ถูกเรียกโดย Aspose.Words FOSS สำหรับ .NET เมื่อการดำเนินการดำเนินต่อไป.


การตรวจสอบการโหลดเอกสาร

ดำเนินการ IDocumentLoadingCallback และกำหนดการดำเนินการนั้นให้กับ LoadOptions.ProgressCallback ก่อนทำการโหลดเอกสาร ระหว่างการโหลด, Notify(args) จะถูกเรียกพร้อมกับอินสแตนซ์ DocumentLoadingArgs ที่มีคุณสมบัติ EstimatedProgress (ซึ่งเป็น double) รายงานว่าการโหลดได้ดำเนินไปถึงระดับใดแล้ว.


การตรวจสอบการบันทึกเอกสาร

ดำเนินการ IDocumentSavingCallback และกำหนดให้กับ SaveOptions.ProgressCallback ก่อนเรียก Document.Save(fileName, saveOptions) (หรือ overload ของสตรีม) ระหว่างการบันทึก, Notify(args) จะได้รับอินสแตนซ์ DocumentSavingArgs ซึ่งเช่นเดียวกันเปิดเผย EstimatedProgress เป็น double.


เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • DocumentLoadingArgs และ DocumentSavingArgs เป็นคลาสที่ปิด (sealed) ซึ่งสมาชิกเดียวคือ EstimatedProgress — ให้ถือว่าการรายงานความคืบหน้าเป็นสัญญาณสไตล์เปอร์เซ็นต์แบบน้ำหนักเบาสำหรับการตอบสนอง UI ไม่ใช่บันทึกการดำเนินการโดยละเอียด.
  • ตั้งค่า ProgressCallback ในอินสแตนซ์ของ LoadOptions หรือ SaveOptions ก่อนส่งไปยัง Document(fileName, loadOptions) หรือ Document.Save(fileName, saveOptions) — การกำหนดค่าหลังจากนั้นไม่มีผลต่อการดำเนินการที่กำลังทำอยู่.
  • ใช้การทำงาน callback แยกต่างหากสำหรับการโหลดและการบันทึก; IDocumentLoadingCallback และ IDocumentSavingCallback เป็นอินเทอร์เฟซที่แตกต่างกันแม้ว่าทั้งสองจะเปิดเผยเมธอด Notify(args) เพียงหนึ่งเดียว.

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้ไข
Notify(args) ไม่เคยถูกเรียกใช้ProgressCallback ไม่ได้ตั้งค่าไว้บนอินสแตนซ์ LoadOptions/SaveOptions ที่ส่งให้กับการเรียก load หรือ saveกำหนดค่า ProgressCallback ก่อนเรียก Document(fileName, loadOptions) หรือ Document.Save(fileName, saveOptions)
Progress callback คอมไพล์กับประเภทอาร์กิวเมนต์ที่ไม่ถูกต้องIDocumentLoadingCallback.Notify รับค่า DocumentLoadingArgs; IDocumentSavingCallback.Notify รับค่า DocumentSavingArgs — พวกมันไม่สามารถใช้แทนกันได้สร้างอินเทอร์เฟซที่ตรงกับการดำเนินการ (การโหลด vs การบันทึก)

FAQ

EstimatedProgress หมายถึงอะไร?

มันเป็นคุณสมบัติ double บน DocumentLoadingArgs (ระหว่างการโหลด) หรือ DocumentSavingArgs (ระหว่างการบันทึก) ที่รายงานความคืบหน้าการเสร็จสิ้นโดยประมาณของการดำเนินการ.

ฉันสามารถยกเลิกการดำเนินการโหลดหรือบันทึกจาก callback ความคืบหน้าได้หรือไม่?

Notify(args) บนทั้งสองอินเทอร์เฟซรับเพียงอ็อบเจ็กต์ arguments (DocumentLoadingArgs หรือ DocumentSavingArgs); ทั้งสองไม่เปิดเผยแฟล็กการยกเลิกในส่วนติดต่อ API นี้.

ฉันต้องการคลาส callback แยกต่างหากสำหรับการโหลดและการบันทึกหรือไม่?

คุณต้องมีการนำไปใช้แยกต่างหากของ IDocumentLoadingCallback และ IDocumentSavingCallback ตามลำดับ เนื่องจากเป็นอินเทอร์เฟซที่แตกต่างกัน แม้ว่าคลาสเดียวอาจนำไปใช้ทั้งสองได้.


API Reference สรุป

คลาส / อินเทอร์เฟซคำอธิบาย
IDocumentLoadingCallbackNotify(args) — ใช้สำหรับการแจ้งความคืบหน้าในการโหลด
IDocumentSavingCallbackNotify(args) — ใช้สำหรับการแจ้งความคืบหน้าในการบันทึก
DocumentLoadingArgsEstimatedProgress: double — ส่งไปยัง IDocumentLoadingCallback.Notify
DocumentSavingArgsEstimatedProgress: double — ส่งต่อให้ IDocumentSavingCallback.Notify
LoadOptions.ProgressCallbackแนบ IDocumentLoadingCallback ไปยังการดำเนินการโหลด
SaveOptions.ProgressCallbackแนบ IDocumentSavingCallback ไปยังการดำเนินการบันทึก

ดูเพิ่มเติม

 ภาษาไทย