When significa quando e é utilizado para fazer referência a um fato que aconteceu. While signfica enquanto e é utilizado quando duas ações acontecem simultaneamente.
Sendo assim, o que define quando usar which ou what é o seguinte:
Usamos “while” para duas ações acontecendo ao mesmo tempo. Usamos uma sentença completa (com sujeito + verbo) após “while” para que exista um panorama geral das duas ações. I took the kids to school while she was at work. (Eu levei as crianças para a escola enquanto ela estava no trabalho.)
O while trata-se da estrutura de repetição mais utilizada quando programamos com C#. Com ela, enquanto a condição for verdadeira o bloco de código será executado. Primeiramente o sistema testa essa condição. Caso verdadeira, executa as linhas declaradas dentro do while; do contrário, sai do loop.
That e which são utilizados para nos referirmos a coisas e who a pessoas. Veja os exemplos: I love the watch that you gave me for my birthday.
While – Esta instrução é usada quando não sabemos quantas vezes um determinado bloco de instruções precisa ser repetido. Com ele, a execução das instruções vai continuar até que uma condição seja verdadeira.
O comando while deve ser usado sempre que: