Det jag inte förstår är att du vill göra ditt API anrop asynkront, medans det egentligen är timern du vill få bort.
Om jag hade gjort det, så hade jag startat en ny thread, i den tråden hade jag lagt en while-loop och i denna lopp så hade jag väntat på en mustryckning, när denna mustryckning hade skett, så hade jag kollat med din GetAsynkKeyState(). Därefter så hade jag för varje sak som skulle ske, startat en ny tråd och anropat den metod som man vill skall utföras då.
Då har du fått följande:
1. Din huvudtråd är aldrig uppbunden med att vänta på en mustryckning. Det blir även så att den tråd som ligger och känner av mustryckningarn används till så lite som möjligt då den bara starta en ny tråd och kör vad som skall hända i den.
Dock förstår jag inte varför du använder API, finns det inte events i .NET för en mustryckning?
Jag vill fånga globala musclick.
Alltså alla, även de som inte sker inom min form.
Och det ska kännas av hela tiden och då tycker jag att det verkar väldigt processor-vidrigt att ha en loop som alltid snurrar.
Jag hade ett smart program på min burk förut som visade en lista med iconer när jag klickade på mittenknappen och eftersom min burk har kraschat och jag inte vet vad det hette, tänkte jag göra ett eget.
Och det ska kännas av hela tiden och då tycker jag att det verkar väldigt processor-vidrigt att ha en loop som alltid snurrar.
Ingen fara om du låter loopen sova några millesekunder, samt sätter en lägre prioritet på tråden. Det blir samma sätt som med din timer, bara att det ligger i en egen loop hela tiden.