|
|
|
C# winApp printDocument PrintPage สามารถใช้งาน task หรือ thread ในการทำงานได้ไม๊ ครับ |
|
|
|
|
|
|
|
จากโค้ด ในการ สร้างหน้าของ printDocument
Code (C#)
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//Loop till all the grid rows not get printed
if (bFirstPage) printDocumentNewPage(sender, e);
#region _Draw Detail
int yC = 30, xC = 100;
int w = 100, h = 120;
for (int row = 0; row < 7; row++)
{
if (row > 0)
{
string expression = TORServices.Maths.Expression.GenerateExpressionMoreVariable();
e.Graphics.DrawString(expression, fontExpression, new SolidBrush(Color.Black), xC + 10, yC + 5);
}
yC += h;
xC = 100;
}
#endregion
if (iPage > iPageAll - 1)
{
bNewPage = false;
bMorePagesToPrint = false;
}
if (bNewPage)
{
printDocumentNewPage(sender, e);
}
iPage++;
//If more lines exist, print another page.
e.HasMorePages = (bMorePagesToPrint) ? true : false;
}
กว่าจะ for loop กว่าจะเข้าฟังค์ชั่น โน่น นี่ นั่น มันก็ใช้เวลาเกือบๆ นาที ครับ
ยิ่งถ้าตอนปริ้นที่ต้องสั่งหลายๆสิบหน้า จะช้ามาก
ผมอยากจะ
1. ใช้ task ในการวนลูปเพื่อสร้างข้อมูลในแต่ละแถวของหน้านั้นๆ
2. ใช้ task ในการสร้างแต่ละหน้าพร้อมๆกัน เช่น มี 30 หน้า ก็สร้าง 30 หน้าพร้อมๆกัน หรือไม่ สร้างทีละ 5-10 หน้าจนกว่าจะครบ 30 หน้า
โดยแต่ละหน้าจะมีระบุ ว่า หน้าที่../... เช่น 1/10 2/10...
พอทำได้ไม๊ ครับ
Tag : .NET, Win (Windows App), C#
|
|
|
|
|
|
Date :
2023-08-24 10:04:31 |
By :
lamaka.tor |
View :
320 |
Reply :
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|