have you
* checked that you have turned on compiler optimizations?
* perhaps changed your code in other ways (is the algorithm really the same)?
* checked if BackGroundWorker perhaps is able to split the work not into one thread but perhaps a whole bunch of threads? (I.e. check if the other app has more than 2 threads running.)