2015-05-17 2 views
2

Есть ли способ работать с Clipboard в ASP.NET, в Server-side? Просто я хочу нажать что-то в Clipboard & извлеките это.Как работать с буфером обмена в ASP.NET, на стороне сервера

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: У меня был поиск и обнаружение, решение работает с Thread. но я ищу другой способ, если существует.

UPDATE: Пожалуйста, ответьте на следующие вопросы:

  1. мне нужно работать с нитью, когда мне нужно работать с буфером обмена?
  2. Если это так, мне нужно запустить новый поток, если мне нужно работать с буфером обмена более одного раза с помощью одного процесса (пользователь изображений нажал кнопку, и мне нужно нажать 100 данных в буфере обмена с помощью цикла for (loop))

Edit: Я хожу в глубокий о вопросе # 2:

вариант 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();   
} 

который правильный?

+0

Зачем вам нужен буфер обмена для веб-сервера? –

+0

В моем случае у меня есть –

+1

Пожалуйста, объясните, что вы должны делать, вместо своего возможного решения. Буфер обмена на стороне сервера довольно необычен ... –

ответ

1

Это, как вы это делаете:

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(), и вы сделали.

+0

вы правы, я думаю, мне нужно начать новый поток. Если мне нужна работа с буфером обмена для новой итерации цикла, как я ошибаюсь? –

+0

Зачем вам семафор? Чтобы предотвратить запуск нескольких параллельных PDF-файлов для генераторов изображений? – Dusan

+0

Я только что отредактировал свой комментарий, если нет необходимости запускать новый поток для работы с Clipboard, поэтому я ошибаюсь, ответьте на этот вопрос сначала –

Смежные вопросы