Re-instate the ‘Esc’ape key!! (please, pretty please, with sugar on top?)

 I would like to start a call to all developers in the world, and especially to the Longhorn devs; to re-instate the Escape key. There are just soo many scenarios still in the Windows shell where you as a user (of a not soo powerfull machine perhaps) are just waiting for something to finish, while you do not need the result.

 As a simple example, I’m working from home here and I wanted to connect to my home machine (to load yet another vpc off my 20GB disk, and clear up some space). So I fire-up Win-R (which launches the Run-dialog box), type ‘\\’, and I get the AutoComplete list for all shares I have visited. In error, and too finger-trigger happy I selected the wrong unc item from the dropdown list. And all of a sudden my machine is dead slow while it is trying to connect to some corporate server that is by no means accessible. But there is NO UI, there is absolutely no option to cancel that command. The only thing I can do is wait for the system to find out the share is not available and display, after some time waiting, the error message.

 There are other scenarios like that, I’m sure. And not only in the Windows Shell. Some apps still do not take enough advantage of multithreading, especially when there is some network link involved. I have come across this feeling while using Outlook and Visual Studio.NET (My two main workhorse applications).

Comments (4)

  1. Jeff says:

    I’d be happy enough if Windows apps were properly threaded so that they don’t appear to be "unrespsonsive."

  2. Alexandre Rocco says:

    Agreed on this one. The example you used always happens on me, sometimes when trying to reach a friend’s computer @ work.

    You get a slow perf and then some time after you get the message that the box is offline.

  3. Raymond Chen says:

    The problem is that a lot of functions are not cancellable. CreateFile, for example – once you start to create a file, you’re stuck until it completes or fails. You can’t cancel it; you just have to wait it out.

    Then there’s the problem with the synchronous API and reentrancy. Somebody calls "GetCoolInfo" and GetCoolInfo needs to do some slow operations. It can’t check for ESC because that would entail peeking for messages, which creates reentrancy which the caller may not be prepared to handle.