Task scheduler in c#

mercoledì 17 agosto 2011 - 19.17
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010

max81 Profilo | Newbie

Un saluto a tutto il forum,
ho sviluppato un'applicazione che genera dei report giornalieri, quindi un'applicazione che verrà eseguita ad un'ora precisa ogni giorno.
Per fare ciò, ho pensato di sfruttare il task scheduler di windows, quindi cercando in rete ho trovato questa piccola guida [http://umarja.wordpress.com/2009/04/08/controllare-il-task-scheduler-di-windows-in-net/].
L'idea di controllare il task scheduler via c#, è data dal fatto che voglio dare la possibilita all'utente di modificare l'ora di esecuzione del programma attraverso l'applicativo.
Quindi, seguendo il codice trovato, dopo aver importato la dll taskschd.dll e aver inserito la direttiva "using TaskScheduler", alla prima riga cioè:

TaskSchedulerClass scheduler = new TaskSchedulerClass();

Il compilatore dice:
"Error: Interop type 'TaskScheduler.TaskSchedulerClass' cannot be embedded. Use the applicable interface instead."

Allora ho ripreso a cercare in rete e ho trovato un programma simile, ma con delle varianti, quindi alla riga precedente ho sostituito questa:
var scheduler = new TaskSchedulerClass();

Anche qui il compilatore restituisce lo stesso errore di prima.
Chiedo gentilmente a qualcuno, se è in grado di aiutarmi nel risolvere il problema, anche adottando soluzioni alternative.

Ringrazio in anticipo

u235 Profilo | Junior Member

ciao,
qual'è il sistema operativo di destinazione dell'applicazione?

u235 Profilo | Junior Member

vabbeh ovviamente intendevo il framework di destinazione e non il sistema operativo...

comunque credo si tratti del 4 per ovvie ragioni... ma volevo la certezza...
se è così, ti basta cliccare con il tasto destro del mouse sul riferimento aggiunto (TaskScheduler) e scegliere proprietà, imposta a false la voce "incorpora tipi di interoperabilità" e dovresti risolvere.

ciao.

max81 Profilo | Newbie

Ciao u235,
ti ringrazio per la risposta.
Si la versione del framework è la 4, comunque ho fatto quello che hai detto e tutto funziona.
Potresti spiegarmi qual'era l'errore e perchè si e dovuto mettere a false quell'opzione.

Grazie per l'aiuto.

u235 Profilo | Junior Member

ciao
il framework 4 consente di incorporare le parti che servono degli assembly di interoperabilità nel proprio assembly, in modo che non sia necessario distribuirli con l'applicazione, ma a volte, non è possibile farlo (o meglio, bisognerebbe agire diversamente).

questo:
http://msdn.microsoft.com/it-it/library/3y76b69k.aspx
potrebbe esserti utile per capire meglio, sicuramente molto più di quanto sia in grado di spiegarti io!

max81 Profilo | Newbie

Ciao u235,
ti ringrazio molto e a buon rendere.

u235 Profilo | Junior Member

Di nulla , mi hai già dato una mano : non avendo mai avuto la necessità, non avevo mai pensato al task scheduler via codice, ora mi verra in mente automaticamente quando sarà necessario!

ciao.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5