如何在服务器端 ASP.NET 中使用剪贴板
How to work with Clipboard in ASP.NET, Server side
有什么方法可以在 ASP.NET
和 Server-side
中使用 Clipboard
吗?
我想在 Clipboard
中推送一些东西并获取它。
额外信息:
我进行了一些搜索,发现该解决方案适用于 Thread
。但我正在寻找另一种方式,如果有另一种方式。
更新:
请回答以下问题:
- 我在使用剪贴板时可以使用线程吗?
- 如果是这样,当我使用单个进程多次使用剪贴板时,我可以 运行 新线程吗(成像用户单击了一个按钮,我必须使用 for 在剪贴板中推送 100 个数据(循环))
例如:
选项 1:
void myMethod(object i){
// put something on clipboard and get that
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
for(int i=0; i<100; i++){
Thread t = new Thread(myMethod);
t.Start(i);
}
}
选项 2:
void myMethod(){
for(int i=0; i<100; i++){
// put something on clipboard and get that
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Thread t = new Thread(myMethod);
t.Start();
}
哪个是正确的?
这就是你的做法:
public static void PdfToJpg()
{
var Thread = new Thread(PdfToJpgThread);
Thread.SetApartmentState(ApartmentState.STA);
Thread.Start(); // You can pass your custom data through Start if you need
}
private static readonly object PdfToJpgLock = new object();
private static void PdfToJpgThread(object Data)
{
lock (PdfToJpgLock)
{
for (int i = 0; i < count; i++)
{
// Call to Acrobat CopyToClipboard
// ...
Clipboard.GetImage().Save(outputPath, ImageFormat.Jpeg);
Clipboard.Clear();
// ...
}
}
}
每次点击按钮,只需调用 PdfToJpg()
即可。
有什么方法可以在 ASP.NET
和 Server-side
中使用 Clipboard
吗?
我想在 Clipboard
中推送一些东西并获取它。
额外信息:
我进行了一些搜索,发现该解决方案适用于 Thread
。但我正在寻找另一种方式,如果有另一种方式。
更新: 请回答以下问题:
- 我在使用剪贴板时可以使用线程吗?
- 如果是这样,当我使用单个进程多次使用剪贴板时,我可以 运行 新线程吗(成像用户单击了一个按钮,我必须使用 for 在剪贴板中推送 100 个数据(循环))
例如:
选项 1:
void myMethod(object i){
// put something on clipboard and get that
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
for(int i=0; i<100; i++){
Thread t = new Thread(myMethod);
t.Start(i);
}
}
选项 2:
void myMethod(){
for(int i=0; i<100; i++){
// put something on clipboard and get that
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Thread t = new Thread(myMethod);
t.Start();
}
哪个是正确的?
这就是你的做法:
public static void PdfToJpg()
{
var Thread = new Thread(PdfToJpgThread);
Thread.SetApartmentState(ApartmentState.STA);
Thread.Start(); // You can pass your custom data through Start if you need
}
private static readonly object PdfToJpgLock = new object();
private static void PdfToJpgThread(object Data)
{
lock (PdfToJpgLock)
{
for (int i = 0; i < count; i++)
{
// Call to Acrobat CopyToClipboard
// ...
Clipboard.GetImage().Save(outputPath, ImageFormat.Jpeg);
Clipboard.Clear();
// ...
}
}
}
每次点击按钮,只需调用 PdfToJpg()
即可。