Skip to content

Commit f58c72e

Browse files
committed
C#: Add example for local not disposed involving tasks.
1 parent 87ee191 commit f58c72e

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

csharp/ql/test/query-tests/API Abuse/NoDisposeCallOnLocalIDisposable/NoDisposeCallOnLocalIDisposable.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.IO.Compression;
55
using System.Xml;
66
using System.Threading;
7+
using System.Threading.Tasks;
78

89
class Test
910
{
@@ -86,6 +87,13 @@ public IDisposable Method()
8687
using (XmlReader.Create(source ?? new StringReader("xml"), null))
8788
;
8889

90+
// GOOD: Flagging these generates to much noise and there is a general
91+
// acceptance that Tasks are not disposed.
92+
// https://devblogs.microsoft.com/pfxteam/do-i-need-to-dispose-of-tasks/
93+
Task t = new Task(() => { });
94+
t.Start();
95+
t.Wait();
96+
8997
return null;
9098
}
9199

Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
| NoDisposeCallOnLocalIDisposable.cs:50:19:50:38 | object creation of type Timer | Disposable 'Timer' is created but not disposed. |
2-
| NoDisposeCallOnLocalIDisposable.cs:51:18:51:73 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
3-
| NoDisposeCallOnLocalIDisposable.cs:52:9:52:64 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
4-
| NoDisposeCallOnLocalIDisposable.cs:74:25:74:71 | call to method Create | Disposable 'XmlReader' is created but not disposed. |
5-
| NoDisposeCallOnLocalIDisposable.cs:74:42:74:64 | object creation of type StringReader | Disposable 'StringReader' is created but not disposed. |
6-
| NoDisposeCallOnLocalIDisposable.cs:79:38:79:67 | object creation of type StreamWriter | Disposable 'StreamWriter' is created but not disposed. |
1+
| NoDisposeCallOnLocalIDisposable.cs:51:19:51:38 | object creation of type Timer | Disposable 'Timer' is created but not disposed. |
2+
| NoDisposeCallOnLocalIDisposable.cs:52:18:52:73 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
3+
| NoDisposeCallOnLocalIDisposable.cs:53:9:53:64 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |
4+
| NoDisposeCallOnLocalIDisposable.cs:75:25:75:71 | call to method Create | Disposable 'XmlReader' is created but not disposed. |
5+
| NoDisposeCallOnLocalIDisposable.cs:75:42:75:64 | object creation of type StringReader | Disposable 'StringReader' is created but not disposed. |
6+
| NoDisposeCallOnLocalIDisposable.cs:80:38:80:67 | object creation of type StreamWriter | Disposable 'StreamWriter' is created but not disposed. |
7+
| NoDisposeCallOnLocalIDisposable.cs:93:18:93:36 | object creation of type Task | Disposable 'Task' is created but not disposed. |
78
| NoDisposeCallOnLocalIDisposableBad.cs:8:22:8:56 | object creation of type FileStream | Disposable 'FileStream' is created but not disposed. |

0 commit comments

Comments
 (0)