The code you showed does look normal, but of course it is only a tiny snippet. To double check I just tried the WinForms example and it runs without an issue. Can you upload your project somewhere (e.g. GitHub) so that I can have a closer look?
Edit: Just realized that you are using the synchronous functions (I thought I disabled them..) You need to use the async versions as shown in the example.
Edit2: Sorry for the crappy answers so far. It looks like you are using a very old version of the library which doesn't work since a change in the USB descriptors a year or so ago. You need to use the current version from GitHub. The API changed significantly. Here is the relevant code from the updated WinForm example (Upload button)
Code:
private async void btnUpload_Click(object sender, EventArgs e)
{
var teensy = lbTeensies.SelectedItem as ITeensy;
if (teensy != null)
{
string filename = tbHexfile.Text;
if (File.Exists(filename))
{
var progress = new Progress<int>(v => progressBar.Value = v);
progressBar.Visible = true;
var result = await teensy.UploadAsync(filename, progress);
MessageBox.Show(result.ToString(), "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
progressBar.Visible = false;
progressBar.Value = 0;
}
else MessageBox.Show("File does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}